数据持久化

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

UserDefault

  1. 应用域(domain)

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

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

     系统设置
    
  4. 预言域

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

     有较高的优先权
    

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的代码
  • 资源文件:图片,声音文件一类的
  • 其他:可以嵌入定制的数据资源

你可能感兴趣的:(数据持久化)