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数据反归档获得之前存储的自定义对象。