NSUserDefaults 通常用来保存一下用户名,密码啥的,现在我想告诉大家的是,我们使用它的时候,充分考虑使用它可以保存数组,字典这样的功能。
保存数据的key须表示数据的名称、种类或用途!同类数据打包后用同一个key保存!
举例,此处使用的是讲array转为set的形式,没有这个对象,直接存会导致崩溃allObjects是转换的方法。
//举例子存储
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
NSMutableSet *groupBackImage = [NSMutableSet setWithArray:[ud arrayForKey:kUD_GroupBackImage]];
[groupBackImage addObject:self.groupInfoModel.groupId];
[ud setObject:[groupBackImage allObjects] forKey:kUD_GroupBackImage];
[ud synchronize];
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
NSMutableSet *groupBackImage = [NSMutableSet setWithArray:[ud arrayForKey:kUD_GroupBackImage]];
[groupBackImage removeObject:self.groupInfoModel.groupId];
[ud setObject:[groupBackImage allObjects] forKey:kUD_GroupBackImage];
[ud synchronize];
举例,关于字典的存取
[self.topConversations removeObjectForKey:model.chatId];
[[NSUserDefaults standardUserDefaults] setObject:self.topConversations forKey:kUD_TopConversations];
[[NSUserDefaults standardUserDefaults] synchronize];
再来一发[self.topConversations setObject:[NSNumber numberWithDouble:[NSDate timeIntervalSinceReferenceDate]]
forKey:model.chatId];
[[NSUserDefaults standardUserDefaults] setObject:self.topConversations forKey:kUD_TopConversations];
[[NSUserDefaults standardUserDefaults] synchronize];