【发布时间】:2017-01-03 06:48:17
【问题描述】:
我想将NSMutableDictionary 保存到NSUserDefaults 然后得到错误:
NSUserDefaults encodeWithCoder 无法识别的选择器发送到实例。 致命异常:NSInvalidArgumentException [NSUserDefaults encodeWithCoder:]:无法识别的选择器发送到实例 0x17544a080
这是我的代码:
NSUserDefaults *shared2 = [[NSUserDefaults alloc]initWithSuiteName:@"AppGroupName"];
NSMutableData *data1 = [[NSMutableData alloc]init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data1];
[archiver encodeObject:shareDic forKey: @"shareDic"];
[archiver finishEncoding];
if (data1 !=nil)
{
[shared2 setObject:data1 forKey:@"dicFitnessData"];
}
【问题讨论】:
-
用实际的相关代码更新您的问题。
-
NSUserDefaults *shared2 = [[NSUserDefaults alloc]initWithSuiteName:@"groupName"]; NSMutableData *data1 = [[NSMutableData alloc]init]; NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data1]; [存档编码对象:shareDic forKey:@“shareDic”]; [存档完成编码]; if (data1 !=nil) { [shared2 setObject:data1 forKey:@"dicFitnessData"]; }
-
正如我所说,更新您的问题。不要在 cmets 中发布代码。
-
在您的问题中向我们展示一些代码。
-
我只归档字典而不归档 NSUserDefaults
标签: ios objective-c nsuserdefaults nskeyedarchiver