目录
已经有许久未更新博文了,最近主要回到iOS应用开发的横向项目上,所以在视觉、算法等其他领域暂时还木有空更新。
开发者文档解读
NSUserDefaults是一个分层持久进程间(可选分布式)键值存储,是针对存储用户的设置而存在的一种优化手段。(NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提,也是大家喜欢用它保存简单数据的一个主要原因。)
——NSUserDefaults适合存储轻量级的本地数据,一些简单的数据(NSString类型的)例如用户密码,偏好设置等,NSUserDefaults是首选的方法。
分层:NSUserDefaults有一个查找数据的位置列表,称为“搜索列表”。搜索列表由称为“套件标识符”或“域标识符”的任意字符串引用。查询时,NSUserDefaults会检查其搜索列表的每个条目,直到找到包含相关密钥的条目,或者搜索整个列表。列表是(注意:“当前主机当前用户”首选项未在iOS,watchOS和tvOS上实现,“任何用户”首选项通常对这些操作系统上的应用程序无用):
- 托管(“强制”)首选项,由配置文件或网络管理员通过mcx设置
- 命令行参数
- 云中当前域的首选项
- 当前主机中当前域(当前用户)的首选项
- 任何主机中当前域(当前用户)的首选项
- 通过-addSuiteNamed添加的首选项:
- 当前主机中当前用户的所有应用程序的全局首选项
- 在任何主机中,当前用户的所有应用程序的全局首选项
- 当前主机中所有用户的当前域的首选项
- 当前主机中所有用户的所有应用程序的全局首选项
- 使用-registerDefaults注册的首选项:
持久性:除非另有说明,否则存储在NSUserDefaults中的首选项会在重新启动和重新启动应用程序时保持不变。
——重启APP,持久化存储的数据不会丢失!
进程间:可以同时访问和修改多个进程的首选项(例如,在应用程序和扩