我想将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"];
}
答案 0 :(得分:0)
您需要实施nscoding协议。
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.yourpoperty forKey:@"Your_KEY"];
}
- (id)initWithCoder:(NSCoder *)aDecoder{
if(self = [super init]){
self.yourpoperty = [aDecoder decodeObjectForKey:@"Your_KEY"];
}
return self;
}