如果你想讓儲存乙個自定義的物件,你就要讓這個自定義的物件去遵守這個協議,而且我們要在.m檔案中重寫-(void)encodewithcoder:(nscoder *)acoder{}方法來告訴歸檔需要儲存哪些屬性,這個nscoder型別的物件和字典很相似。我們在自定義類的.m檔案中要實現這個方法。就比如我在person.h標頭檔案中定義了兩個屬性,乙個是年齡,乙個是名字,我想要把這兩個屬性儲存起來,我們就要這麼做
-(void)encodewithcoder:(nscoder *)acoder
如果我們想把資料存在tmp目錄下的話我們可以在主函式中這麼做
//獲取tmp的目錄
nsstring * tmppath=nstemporarydirectory();
//獲取file path也就是檔案的儲存路徑
//建立我們自定義的物件
person * person=[[person alloc]init];
person.name=@"張三";
person.age=20;
[nskeyedarchiver archiverootobject:person tofile:filepath];
nslog(@"%@",tmppath);
nskeyedarchiver是專門用來做的歸檔的,nskeyedunarchiver是專門用來解檔的。
同樣我們在解檔的時候要在自定義類的.m檔案中實現-(instancetype)initwithcoder:(nscoder *)adecoder這個方法來告訴系統我們要解檔哪些屬性.如下實現
-(instancetype)initwithcoder:(nscoder *)adecoder
return self;
}
在取資料的時候我們在主函式中這麼來取
//獲取tmp的目錄
nsstring * tmppath=nstemporarydirectory();
//獲取file path也就是檔案的儲存路徑
person * person1=[nskeyedunarchiver unarchiveobjectwithfile:filepath];
我們如果直接歸檔儲存了自定義物件的陣列也是可以的。 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 物件的歸檔 解檔 runtime
ios 物件的歸檔 解檔 runtime 若要例項物件實現歸檔解檔,需要該類遵守nscoding協議,及以下協議方法 專案中以ycarchivebase類為例,可直接新增屬性使用 歸檔和接檔的操作以類方法實現如下 可自己建立管理類分離出去 archivefilepath 為檔案儲存路徑 void a...