zoukankan      html  css  js  c++  java
  • iOS 数据持久化4种方式

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

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

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

    可以尝试使用Xcode建立一个空的应用,然后打开应用目录可以查看到有以下文件

    1、Documents

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

    2、Documents/Inbox

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

    3、Library

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

    4、Library/Caches

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

    5、Library/Preferences

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

    6、tmp

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

     

  • 相关阅读:
    SVNKit学习——基于Repository的操作之print repository tree、file content、repository history(四)
    java操作svn【svnkit】实操
    python笔记38-使用zmail发各种邮件案例代码
    python笔记37-史上最好用的发邮件zmail
    python笔记3-邮件发送(smtplib)
    第9期《python3接口自动化测试》课程,6月29号开学!
    anyproxy学习4-Linux(Centos)搭建anyproxy环境
    anyproxy学习3-修改返回内容(beforeSendResponse)
    anyproxy学习2-rule模块实现接口mock功能
    anyproxy学习1-windows平台安装和抓手机app上https请求
  • 原文地址:https://www.cnblogs.com/Zerone-Lee/p/4703324.html
Copyright © 2011-2022 走看看