iOS 物件的歸檔 解檔 runtime

2021-07-26 16:37:59 字數 980 閱讀 2571

ios 物件的歸檔、解檔 runtime

若要例項物件實現歸檔解檔,需要該類遵守nscoding協議,及以下協議方法

專案中以ycarchivebase類為例,可直接新增屬性使用

歸檔和接檔的操作以類方法實現如下(可自己建立管理類分離出去):

archivefilepath 為檔案儲存路徑

+ (void)archivewithobjc:(id)objc{

nsmutabledata *data = [nsmutabledata data];

//歸檔

nskeyedarchiver *archiver = [[nskeyedarchiver alloc]initforwritingwithmutabledata:data];

[archiver encodeobject:objc forkey:@"archive"];

[archiver finishencoding];

nslog(@"data:%@",data);

[data writetofile:archivefilepath atomically:yes];

使用:

ycarchivebase *model = [[ycarchivebase alloc]init];

model.name = @」testname」;

model.num = 23;

model.address = @」address」;

model.ddd = 23.0;

//歸檔

[ycarchivebase archivewithobjc:model];

//解檔

ycarchivebase *unmodel = [ycarchivebase unarchive];

nslog(@"archiver:%@",unmodel.name);

git:

到此結束

iOS 歸檔解檔

開發過程中有時需要儲存一些輕量級的資料,對於ios提供的幾種資料儲存方式在這時最合適當屬物件歸檔 nscoding 但是將物件資料進行歸檔解檔時候需要實現兩個方法 encodewithcoder和initwithencoder。encodewithcoder 編碼 initwithcoder 解碼使...

iOS 歸檔 解檔

1.新建類datacache 歸檔 void cachewithdata id data withfile nsstring file 解檔 id archivewithfile nsstring file 2.使用 儲存路徑 college mouth.arc 在虛擬機器上,簡單的寫可以找到路徑,...

ios 歸檔解檔

如果你想讓儲存乙個自定義的物件,你就要讓這個自定義的物件去遵守這個協議,而且我們要在.m檔案中重寫 void encodewithcoder nscoder acoder 方法來告訴歸檔需要儲存哪些屬性,這個nscoder型別的物件和字典很相似。我們在自定義類的.m檔案中要實現這個方法。就比如我在p...