iOS:在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包含类型为

我想知道如何在NSUserDefaults中保存NSMutableArray?我一直得到以下错误

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];