iOS:在NSUserDefaults中保存NSMutableArray时出错:';尝试插入非属性列表对象';?
我想知道如何在NSUserDefaults中保存NSMutableArray?我一直得到以下错误iOS:在NSUserDefaults中保存NSMutableArray时出错:';尝试插入非属性列表对象';?,ios,objective-c,swift,compiler-errors,Ios,Objective C,Swift,Compiler Errors,我想知道如何在NSUserDefaults中保存NSMutableArray?我一直得到以下错误 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object ( "<Data: 0x7a1bf830>", ) for key dataList' 问题在于self.dataList包含类型为
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object (
"<Data: 0x7a1bf830>",
) for key dataList'
问题在于
self.dataList
包含类型为Data
的对象(这是实现的自定义类)
您需要切换到
NSData
或将Data
对象转换为属性列表对象。选中此[thread][1]它描述了如何将数组添加到NSUserdefaults[1]:或使对象NSCoding
兼容以使用NSKeyedArchiver
进行序列化/反序列化needs@JustSid使对象符合NSCoding
不足以将它们放入NSUserDefaults
。您还必须手动执行到NSData
的转换。对于序列化/反序列化需求,我没有提到NSKeyedArchiver
?
NSUserDefaults *myDefaults = [[NSUserDefaults alloc]
initWithSuiteName:@"group.sharingData"];
[myDefaults setObject:self.dataList forKey:@"dataList"];
[myDefaults synchronize];