游戏推广平台代理加盟/六年级上册数学优化设计答案
首先,NSUserDefaults 是不支持直接存贮NSObject对象的,如果存了会发上崩溃的
如图
我们可以将NSObject对象转化为NSData,然后存储,这时候需要用到NSKeyedArchiver 和 NSKeyedUnarchiver,并且模型页需要实现两个方法如图
存贮和取出的地方这样
代码下所示
- (id)initWithCoder: (NSCoder *)coder
{if (self = [super init]){self.name = [coder decodeObjectForKey:@"name"];self.gender = [coder decodeObjectForKey:@"gender"];}return self;
}- (void)encodeWithCoder: (NSCoder *)coder
{[coder encodeObject:_name forKey:@"name"];[coder encodeObject:_gender forKey:@"gender"];
}```
```objectivecPersonModel *person = [[PersonModel alloc] init];person.name = @"你好你好";person.gender = @"nv";NSData * personData = [NSKeyedArchiver archivedDataWithRootObject:person];[[NSUserDefaults standardUserDefaults] setObject:personData forKey:@"kkk"];NSData *tmpData = [[NSUserDefaults standardUserDefaults] objectForKey:@"kkk"];PersonModel *tmpPerson = [NSKeyedUnarchiver unarchiveObjectWithData:tmpData];