您的位置:首页 > 其它

NSUserDefaults 存储可变数组,对象。

2017-05-26 12:28 197 查看
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];

其实就是把数组取出后,转换成可变数组,存储是再转换成不可变的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: