UserDefaults 使用小结

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种情况

  1. 如果 URL 不是文件 url , 会调用 +[NSKeyedArchiver archivedDataWithRootObject:] 把 url 转换为 NSData 保存
  2. 文件 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 已经有值了, 那么再设定默认值就没用了, 所以你可以放心大胆地设置默认值, 不用去考虑用户是否已经有自定义的数据

你可能感兴趣的:(UserDefaults 使用小结)