您的位置:首页 > 移动开发 > IOS开发

iOS-NSUserDefaults

2015-12-15 11:13 267 查看

NSUserDefaults总结:

1、存储类型

2、存储自定义对象

3、设置默认值

4、删除NSUserDefaults

5、注意情况

NSUserDefaults在App更新和系统更新都保存,App卸载会删除

一般保存用户名或者一些配置的信息

1:存储类型

NSUserDefaults支持的数据类型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL

NSUserDefaults不能存储可变类型(如:NSMutableArray、NSMutableDictionary)

2:存储自定义对象

自定义对象要先序列化、然后转为NSData、需要写一个encodeWithCoder 和 initWithCoder的函数

方式如下:实现下面的协议:

@protocol NSCoding
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder; // NS_DESIGNATED_INITIALIZER
@end


3:设置默认值

设置一个字典为相应的key值设置默认的value,如果某个key值原来有对应的value,则不会覆盖

NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys: @"value", @"key",nil];

[[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];


4:删除NSUserDefaults

- (void)setObject:(nullable id)value forKey:(NSString *)defaultName;
- (void)removeObjectForKey:(NSString *)defaultName;


5、注意情况

1)NSUserDefaults不能存储可变类型(如:NSMutableArray、NSMutableDictionary)

2)使用synchronize 可以直接写入disk

3)相同key值会替换

代码例子【https://github.com/nonoBruce/KYUserDefault
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: