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];

     

  • 相关阅读:
    js学习总结----多级菜单jquery版本
    js学习总结----案例之多级菜单js版本
    js学习总结----案例之百度搜索框
    js学习总结----案例之放大镜
    js学习总结----事件委托和事件代理(鼠标点击其他地方隐藏效果)
    js学习总结----鼠标跟随js版
    js学习总结----案例之鼠标跟随jquery版
    js学习总结----事件的传播机制
    js学习总结----事件基础
    js学习总结----jquery版本轮播图及extend扩展
  • 原文地址:https://www.cnblogs.com/Zerone-Lee/p/4703324.html
Copyright © 2011-2022 走看看