iOS 数据持久化4种方式

iOS 4种讲数据持久存储到iOS文件的系统机制:数据库

  1. 属性列表(NSUserDefaults、plist文件)
  2. 对象归档(NSCoding)
  3. iOS嵌入式关系数据库(SQLite3)
  4. 苹果提供的持久化工具(Core Data)

 

说道数据持久化都涉及到一个共同的要素。既然是把数据持久存储到iOS文件系统中,那么久涉及到了应用沙盒。缓存

能够尝试使用Xcode创建一个空的应用,而后打开应用目录能够查看到有如下文件网络

一、Documents

①存放内容
咱们能够将应用程序的数据文件保存在该目录下。不过这些数据类型仅限于不可再生的数据,可再生的数据文件应该存放在Library/Cache目录下。
②是否会被iTunes同步

二、Documents/Inbox

①存放内容
该目录用来保存由外部应用请求当前应用程序打开的文件。
好比咱们的应用叫A,向系统注册了几种可打开的文件格式,B应用有一个A支持的格式的文件F,而且申请调用A打开F。因为F当前是在B应用的沙盒中,咱们知道,沙盒机制是不容许A访问B沙盒中的文件,所以苹果的解决方案是讲F拷贝一份到A应用的Documents/Inbox目录下,再让A打开F。
②是否会被iTunes同步

三、Library

①存放内容
苹果建议用来存放默认设置或其它状态信息。
②是否会被iTunes同步
是,可是要除了Caches子目录外

四、Library/Caches

①存放内容
主要是缓存文件,用户使用过程当中缓存均可以保存在这个目录中。前面说过,Documents目录用于保存不可再生的文件,那么这个目录就用于保存那些可再生的文件,好比网络请求的数据。鉴于此,应用程序一般还须要负责删除这些文件。
②是否会被iTunes同步
否。

五、Library/Preferences

①存放内容
应用程序的偏好设置文件。咱们使用NSUserDefaults写的设置数据都会保存到该目录下的一个plist文件中,这就是所谓的写道plist中!
②是否会被iTunes同步

六、tmp

①存放内容
各类临时文件,保存应用再次启动时不须要的文件。并且,当应用再也不须要这些文件时应该主动将其删除,由于该目录下的东西随时有可能被系统清理掉,目前已知的一种可能清理的缘由是系统磁盘存储空间不足的时候。
②是否会被iTunes同步
    //沙盒目录
    NSHomeDirectory();
    
    //tmp文件路径
    NSTemporaryDirectory();
    
    //Document
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
相关文章
相关标签/搜索