数据持久化

来源:互联网 发布:老徐外设店淘宝 编辑:程序博客网 时间:2024/04/27 16:08

一、文件
二、UserDefault
三、SQLite
四、keychain
五、coredata
六、归档化

UserDefault
1. 应用域(domain)

    一般NSUserDefault内使用setValue:forKeyPath方法时,存储的数据存入了应用域

2. 注册域

     仅有较低的优先权,应用域没找到在此找

3. 全局域

    系统设置
  1. 预言域

    包括地区,日期
  2. 参数域

    有较高的优先权

1、沙盒目录结构

  • Application:存放程序源文件,上架前经过数字签名,上架后不可修改
  • Documents:常用目录,存储大文件或常更新的数据,能进行iCloud备份目录。这里不能存缓存文件,否则上架不被通过。
//获取目录位置NSArray *documentDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,Yes);NSString *myDocPath = [documentDirectory objectAtIndex:0];//documentDirectory数组里面只有一个元素,获取第一个还是最后一个都是可以取出Documents目录
  • Library
    1. Caches:存放体积大又不需要备份的数据,应用程序的数据,可以存缓存数据,SDWebImage缓存路径就是这个
    2. Preference:设置数据,iCloud会备份设置信息
  • tmp:存放临时文件,不会被备份,而且这个文件下的数据有可能随时被清除的可能
//获取目录位置NSString *tmpDirectory = NSTemporaryDirectory();

2、App Bundle 里面有什么

  • Info.plist:此文件包含了应用程序的配置信息.系统依赖此文件以获取应用程序的相关信息
  • 可执行文件:此文件包含应用程序的入口和通过静态连接到应用程序target的代码
  • 资源文件:图片,声音文件一类的
  • 其他:可以嵌入定制的数据资源