您好,登錄后才能下訂單哦!
NSUserDefaults可以存取一些短小的信息。
比如存入再讀出一個字符串到NSUserDefaults:
但是并不是所有的東西都能往里放的。NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.
如果把一個自定義的類存到一個NSArray里,然后再存到NSUserDefaults里也是不能成功的。不信可以試試,如果你成功的請告訴我。
那怎么辦呢?
我找到的方法是,讓這個自定義類實現(xiàn)<NSCoding>協(xié)議中的- (id) initWithCoder: (NSCoder *)coder方法和- (void) encodeWithCoder: (NSCoder *)coder方法(obj-c的協(xié)議protocol就是java的接口interface,就是C++的純虛函數(shù)),然后把該自定義的類對象編碼到NSData中,再從NSUserDefaults中進行讀取。
粘代碼:
假設有這樣一個簡單的類對象
然后再存取時通過NSData做載體:
以上的代碼時由另一個程序中截取的,沒有測試過,但意思就是這樣了。
如果一個自定義類中由另一個自定義類對象,那么所有嵌套的類都要實現(xiàn)<NSCoding>。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。