美文网首页
iOS 数据持久化的方式

iOS 数据持久化的方式

作者: JimmyL | 来源:发表于2019-07-09 08:57 被阅读0次

    一、什么是数据持久化

    所谓的数据持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据,既可以减少用户流量消耗,也可以增强APP的体验效果。

    二、沙盒

    沙盒(sandbox):iOS系统为每个应用程序创建的存储空间,且每个应用程序只能访问自身的存储空间,不能相互通信,所有的非代码文件都要保存在此,例如属性文件plist、文本文件、图像、图标、媒体资源等。
    [图片上传中...(image.png-a7c639-1552281691771-0)]

    沙盒目录

    沙盒目录下的文件及文件夹:

    sandbox.png
    获取沙盒目录路径:
    NSLog(@"沙盒目录路径:%@", NSHomeDirectory());
    
    沙盒路径.png

    Documents

    保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录。
    苹果建议将在应用程序中浏览到的文件数据保存在该目录下。

    Library

    获取 Library 路径:

    //获取Library的目录路径
        NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) firstObject];
        NSLog(@"Library 路径:%@", libDir);
    
    Library.png

    分为 Cache 和 Preferences

    Cache

    一般存储的是缓存文件,iTunes不会备份该目录。内存不足时会被清除,应用没有运行时,可能会被清除。一般存储体积大、不需要备份的非重要数据,例如音频、视频、图片等数据。
    获取 Cache 路径:

    // 获取cache目录路径
        NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) firstObject];
        NSLog(@"Cache 路径:%@", cachesDir);
    
    Preferences

    保存应用程序的所有偏好设置iOS的Settings(设置),我们不应该直接在这里创建文件,而是需要通过NSUserDefault这个类来访问应用程序的偏好设置。
    iTunes会自动备份该文件目录下的内容。
    比如说:是否允许访问图片,是否允许访问地理位置......

    tmp

    临时文件夹,iTunes不会备份这个目录,用来保存临时数据,应用退出时会清除该目录下的数据。
    tmp目录获取:

    // 获取tmp目录路径
    NSString *tmp = NSTemporaryDirectory();
    

    SystemData

    未找到相关文档来说明起存储规则,有待继续探究。。。

    .com.apple.mobile_container_manager.metadata.plist

    该文件为隐藏文件,从文件名可以看出该文件为一个管理文件,对当前移动设备管理元数据,从中可获取当前应用的唯一标示;

    三、持久化方式

    常用的持久化方式包括以下几种:

    1. 属性列表(plist存储)
    2. 偏好设置(NSUserDefaults)
    3. 归档序列化存储
    4. CoreData
    5. SQL

    相关文章

      网友评论

          本文标题:iOS 数据持久化的方式

          本文链接:https://www.haomeiwen.com/subject/qnfvpqtx.html