NSUserDefaults :是数据持久化的一种方式,用途比较广泛。
如何用它存储对象呢?对象是不能直接存储的,但是NSUserDefaults可以存储NSData类型的数据,所以要存储对象需要先把对象转化成NSData类型数据。
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model];
这样就可以存储了。但是需要记得对象要遵循
NSCopying,NSCoding协议。
NSUserDefaults 存储可变数组。
YFMapdataModel *model = [[YFMapdataModel alloc] init];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model];
NSMutableArray *likeArray = [[[NSUserDefaults standardUserDefaults]objectForKey:@"likeArray"] mutableCopy];
if (!likeArray) {
likeArray = [[NSMutableArray alloc]initWithCapacity:0];
}
[likeArray addObject:data];
NSArray *saveArray = [NSArray arrayWithArray:likeArray];
[[NSUserDefaults standardUserDefaults]setObject:saveArray forKey:@"likeArray"];
[[NSUserDefaults standardUserDefaults] synchronize];
其实就是把数组取出后,转换成可变数组,存储是再转换成不可变的。