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

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