NSUserDefaults可以用来存储一些用户默认的设置,但是并不是所有的东西都能进行存储,NSUserDefault只支持:NSString、NSNumber、NSData、NSArray、NSDictionary。并且,如果把一个自定义的类存入数组再存入NSUserDefaults也是不成功的。NSUserDefault的使用举例:
NSUserDefaults *userDefaults = [NSUserDefaultsstandardUserDefaults];
[userDefaults setObject:@"ChenPeng"forKey:@"name"];
NSString *name = [userDefaults objectForKey:@"name"];//name=ChenPeng
如果需要将自定义的对象存放到NSUseDefaults中,需要让该自定义类实现<NSCoding>协议中的- (void)encodeWithCoder:(NSCoder *)aCoder、和- (id)initWithCoder:(NSCoder *)aDecoder两个方法,当存储的时候通过NSKeyedArchiver类将自定义对象归档为NSData对象进行存储,获取的时候通过NSKeyedUnarchiver类将NSData数据反归档获得之前存储的自定义对象。
本文详细介绍了如何使用NSUserDefaults存储和检索字符串、数字、数据等基本类型的数据,并阐述了如何将自定义对象存入NSUserDefaults。通过实现NSCoding协议中的encodeWithCoder和initWithCoder方法,可以将自定义对象归档为NSData并存储,从而在需要时通过反归档恢复原始对象。
570

被折叠的 条评论
为什么被折叠?



