保存自定義類型數(shù)據(jù)的方法
通常, 我們保存沒那么多的數(shù)據(jù)的時候, 采用的是NSUserdefault的方式來保存,
但這樣會有一個缺點, 就是通過這種方式儲存的數(shù)據(jù)類型必須是基本的數(shù)據(jù)類型,
例如NSArray, NSDictionary, NSNumber等, 如果我們需要儲存自己定義的一個類的數(shù)據(jù)的時候那么怎么辦呢? 這時候的方法就是使用NSCoding了.
我們來簡單的歸納一下NSCoding的使用步驟
- 讓自定義的類(就是需要被儲存的類)遵守NSCoding協(xié)議 注意是NSCoding, 不是NSCoping
- 編碼:在
- '' (void)encodeWithCoder:(NSCoder *)aCoder
里對需要保存的屬性使用方法encodeObject: forKey:來進(jìn)行賦值
3.解碼: 在
- '' (instancetype)initWithCoder:(NSCoder *)aDecoder
里對保存的屬性進(jìn)行解碼, 使用的方法為 decodeObjectForKey: 來進(jìn)行解碼
- 歸檔:然后需要做的就是控制器或者需要的地方像使用NSUSerdefault一樣使用了
歸檔的時候使用[NSKeyedArchiver archivedDataWithRootObject:] 參數(shù)寫自定義類.
解檔:解檔的時候使用 [NSKeyedUnarchiver unarchiveObjectWithData:] 參數(shù)寫自定義類.
這個就是簡單的使用方法了, 這里只做個人心得的記錄, 并沒有用很完善的方式闡述, 并不適合做他人的參考