IOS数据存储详解及实例代码

  

<强> iOS应用数据存储的常用方式

  
      <李> XML属性列表(plist)归档   <李>首选项(偏好设置)   <李> NSKeyedArchiver归档(NSCoding)   <李> SQLite3李   <李> 核心数据   
  

1。XML属性列表(plist)归档

  

每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒。

  

 IOS数据存储详解及实例代码

  

<强>应用沙盒结构分析:

  

<强>应用程序包:包含了所有的资源文件和可执行文件
  

  

<强>文件:保存应用运行时生成的需要<强>持久化强劲的数据,iTunes同步设备时<强>会备份该目录,例如,游戏应用可将游戏存档保存在该目录

  

<强> tmp :保存应用运行时所需的<强>临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件.iTunes同步设备时<强>不会备份该目录

  

<强>图书馆/缓存:保存应用运行时生成的<强>需要持久化强劲的数据,iTunes同步设备时<强>不会备份该目录。一般存储体积大,不需要备份的非重要数据

  

<强>图书馆/偏好:保存应用的所有<强>偏好设置强,iOS的设置(设置)应用会在该目录中查找应用的设置信息.iTunes同步设备时<强>会备份该目录

  

<强>应用沙盒目录的常见获取方式

        沙盒根目录:NSString *家=NSHomeDirectory ();   文档:(2种方式)   1. 利用沙盒根目录拼接“文档”字符串//不建议采用,因为新版本的操作系统可能会修改目录名   NSString *家=NSHomeDirectory ();   NSString *文件=(家庭stringByAppendingPathComponent: @“文档”);   2. 利用NSSearchPathForDirectoriesInDomains函数//NSUserDomainMask代表从用户文件夹下找//是的代表展开路径中的波浪字符“~”   NSArray *数组=NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask);//在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素   NSString *文件=(数组,objectAtIndex: 0);   tmp:   NSString * tmp=NSTemporaryDirectory ();   库/缓存:   跟文档类似的2种方法:   1. 利用沙盒根目录拼接“缓存”字符串   2. 利用NSSearchPathForDirectoriesInDomains函数(将函数的第2个参数改为:NSCachesDirectory即可)   库/偏好:   通过NSUserDefaults类存取该目录下的设置信息      

<强>属性列表

  
  

属性列表是一种XML格式的文件,拓展名为plist

  

如果对象是NSString, NSDictionary, NSArray, NSData, NSNumber等类型,就可以使用writeToFile:自动:方法直接将对象写到属性列表文件中

     

如:<强>将一个NSDictionary对象归档到一个plist属性列表中

     //获取路径   NSString *路径=NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask,是的)[0];   路径=[路径stringByAppendingPathComponent: @“save.plist”);//将数据封装成字典//不能存储对象   称为unaryoperations * dict=(称为unaryoperations字典);   [dict setObject: @”小黄”forKey: @“name”);   [dict setObject: @“12345678”forKey: @“手机”);   [dict setObject: @“24”forKey: @“时代”);//将字典持久化到文件/save.plist文件中   (dict writeToFile:路径自动:是的),      

 IOS数据存储详解及实例代码

  

<>强恢复NSDictionary

        读取属性列表,恢复NSDictionary对象//读/save.plist取文件的内容,实例化NSDictionary   NSDictionary * dict=[NSDictionary dictionaryWithContentsOfFile路径):;   NSLog(@”名称:% @”,[dict objectForKey: @“name”]);   NSLog(@“电话:% @”,[dict objectForKey: @ "电话"]);   NSLog(@“年龄:% @”,[dict objectForKey: @ "年龄"]);      
  

* * NSDictionary - (writeToFile:自动)——比;保存。plist
  (属性列表文件)* *

  

<强> save.plist(属性列表文件)- (dictionaryWithContentsOfFile:)→NSDictionary

     

2。偏好(偏好设置)

  
  

很多iOS应用都支持偏好设置,比如保存用户名:密码,字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能

IOS数据存储详解及实例代码