為什么NSUserDefaults無(wú)法在iOS中保存NSMutableDictionary?我想保存一個(gè)NSMutableDictionary對(duì)象NSUserDefaults。鍵類型NSMutableDictionary是NSString,值類型是NSArray,它包含實(shí)現(xiàn)的對(duì)象列表NSCoding。每份文件,NSString和NSArray兩者都符合NSCoding。我收到此錯(cuò)誤:[NSUserDefaults setObject:forKey:]:嘗試插入類NSCFDictionary的非屬性值....
3 回答

30秒到達(dá)戰(zhàn)場(chǎng)
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果要在用戶默認(rèn)值中保存對(duì)象,則所有對(duì)象(遞歸地,一直向下)必須是屬性列表對(duì)象。符合NSCoding并不意味著什么 - NSUserDefaults
不會(huì)自動(dòng)編碼NSData
,你必須自己做。如果您的“實(shí)現(xiàn)的對(duì)象列表NSCoding
”表示不是屬性列表對(duì)象的對(duì)象,那么在保存到用戶默認(rèn)值之前,您必須對(duì)它們執(zhí)行某些操作。
FYI財(cái)產(chǎn)清單類NSDictionary
,NSArray
,NSString
,NSDate
,NSData
,和NSNumber
。您可以將可變子類(如NSMutableDictionary
)寫(xiě)入用戶首選項(xiàng),但您讀出的對(duì)象將始終是不可變的。
- 3 回答
- 0 關(guān)注
- 681 瀏覽
添加回答
舉報(bào)
0/150
提交
取消