zoukankan      html  css  js  c++  java
  • 数据持久化存储

    一、沙盒

    1. 沙盒也叫沙箱,英文standbox,其原理是通过重定向技术,把程序生成和修改的文件定向到自身文件夹中。在沙盒机制下,每个程序之间的文件夹不能互相访问。iOS系统为了保证系统安全,采用了这种机制
    2. iOS 应用程序在安装时,会创建属于自己的沙盒文件,应用程序不能直接访问其他应用程序的沙盒文件,当应用程序需要向外部请求或接收数据时,都需要经过权限认证,否则,无法获取到数据。
    3. 应用程序中所有的非代码文件都保存在沙盒中,比如图片、声音、属性列表,sqlite数据库和文本文件等。
    4. 沙盒的的根目录有三个文件夹,分别是 Documents,Library,tmp
      •  Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录
      •  tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除,应用没有运行时,系统也可能会自动清理该目录下的文件,iTunes不会同步该目录,iPhone重启时该目录下的文件会丢失。
      •  Libaray:存储程序的默认设置和其他状态信息,iTunes会自动备份该目录。
      •  Libaray/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除,一般存放体积比较大,不是很重要的资源
      •  Libaray/Preferences:保存应用的所有偏好设置,ios的Settings(设置)应用会在该目录中查找应用的设置信息,iTunes会自动备份该目录。

    二、数据持久化存储

           数据持久化存储即将数据保存到硬盘中,在运用程序进程被Kill掉或者手机重启后,数据不会丢失,仍然可以保存到沙盒中,供程序读写操作。

    1. plist文件(序列化): plist文件是将某些特定的类,通过XML文件的方式保存在目录中。
    2. preference(偏好设置): 偏好设置是专门用来保存应用程序的配置信息的,一般不要在偏好设置中保存其他数据。
    3. 偏好设置是以key-value的方式进行存储和读写,使用到一个单例对象NSUserDefaults
    4. NSKeyedArchiver(归档):归档在iOS中是另一种形式的序列化,只要遵循了NSCoding协议的对象都可以通过它实现序列化。由于绝大多数支持存储数据的类都遵循了NSCoding协议,因此,对于大多数类来说,归档相对而言还是比较容易实现的。
    5. SQLite3 : 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。
    6. CoreData : Core Data框架为我们提供了一种比操作SQL关系数据库更简单的数据管理方式,并且集成IDE和Xcode非常方便
  • 相关阅读:
    20171017/20171018
    BZOJ[3193] [JLOI2013]地形生成
    BZOJ[1009] [HNOI2008]GT考试
    BZOJ[4767] 两双手
    BZOJ[4013] [HNOI2015]实验比较
    BZOJ[1925] [Sdoi2010]地精部落
    20171015 杂题
    20171015
    20171014
    USACO 2015 December Contest, Gold Problem 3. Bessie's Dream
  • 原文地址:https://www.cnblogs.com/fightinglikeKobe/p/14422161.html
Copyright © 2011-2022 走看看