UserDefaults 是� iOS 开发中经常用到的工具之一, 一般用来保存设置信息.
UserDefaults 使用 plist 记录保存的数据, 所以能保存的数据类型只有数字, 布尔, 字符串, NSData, NSDate, 也能保存数组, 或是字典.
基本使用
获取 UserDefaults
+ standardUserDefaults
保存数据
- setObject:forKey:
可以用来保存对象, 类型只能是 NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary.
还有几个简便方法
- setBool:forKey:
- setInteger:forKey:
- setFloat:forKey:
- setDouble:forKey:
- setURL:forKey:
这个有点特别, 分2种情况
- 如果 URL 不是文件 url , 会调用
+[NSKeyedArchiver archivedDataWithRootObject:]
把 url 转换为 NSData 保存 - 文件 URL 会获取文件的绝对路径, 并保存为字符串类型
读取数据
保存数据一样, 除了
- objectForKey:
之外, 还有若干的简便方法
- URLForKey:
- arrayForKey:
- dictionaryForKey:
- stringForKey:
- stringArrayForKey:
- dataForKey:
- boolForKey:
- integerForKey:
- floatForKey:
- doubleForKey:
还有一个方法 ,可以提取出所有保存的数据, 并以字典方式展现
- dictionaryRepresentation
所有的方法, 如果对应数据不存在, 则返回 nil 或是0 , NO
删除数据
- removeObjectForKey:
写入硬盘
调用 setXXXForKey 并不会立即写入硬盘, 如果需要立即写入, 可以调用这个方法, 不会这个方法不宜每次保存数据后调用, 会影响性能
- synchronize
设定初始值
有些时候, 你需要设置一些初始值, 比如默认音量
- registerDefaults
[userDefault registerDefaults:@{@"volume":@0.5}];
如果某个 key 已经有值了, 那么再设定默认值就没用了, 所以你可以放心大胆地设置默认值, 不用去考虑用户是否已经有自定义的数据
网友评论