详解iOS的数据存储精要.doc

详解iOS的数据存储精要

详解iOS的数据存储 本文介绍iOS中常用的应用数据存储方式及其详细用法,内容很全面和详细,对大家在IOS开发中很有帮助,下面一起来看看。 iOS应用数据存储的常用方式 1.XML属性列表(plist)归档. 2.Preference(偏好设置). 3.NSKeyedArchiver归档. 4.SQLite3 5.Core Data 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录)与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒. 模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本) /Users/apple/Library/Application Support/iPhone Simulator/6.0/Applications 或者: /Users/用户名/资源库/Application Support/iPhone Simulator/6.1/Applications 注意: 默认情况下,模拟器的目录是隐藏的,要想显示出来,需要在Mac终端输入下面的命令: 显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles YES 隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles NO 应用沙盒结构分析 Documents: 保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如游戏应用可将游戏存档保存在该目录. temp: 保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时,系统也可能会清除该目录下的文件.iTunes同步设备时不会备份该目录. Library/Caches: 保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录.一般存储体积大,不需要备份的非重要数据. Library/Preference: 保存应用的所有偏好设置,iOS的setting(设置)应用会在该目录中查找应用的设置信息.iTunes同步设备时会备份该目录. 应用沙盒目录的常见获取方式: 沙盒根路径 NSString *home = NSHomeDirectory(); Documents:(2种方式) 利用沙盒根目录拼接Documents字符串: NSString *home = NSHomeDirectory();NSString *documents = [home stringByAppendingPathComponent:@Documents];// 不建议采用,因为新版本的操作系统可能会修改目录名 利用NSSearchPathForDirectoriesInDomains函数: // NSUserDomainMask 代表从用户文件夹下找 // YES 代表展开路径中的波浪字符“~”NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, NO);// 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素NSString *documents = [array objectAtIndex:0]; tmp: NSString *tmp= NSTemporaryDirectory(); Library/Catches:(跟Documents类似的两种方法) 1.利用沙盒跟目录拼接Catches字符串. 2.利用NSSearchPathForDirectoriesInDomains函数(将函数的第一个参数改为:NSCachesDirectory即可). Library/Preference:通过NSUserDefaults类存取该目录下的设置信息. 下面分别详细介绍5中数据存储方式 属性列表 属性列表是一种XML格式的文件,拓展名为plist. 如果对象是NSString, NSDictionary, NSArray, NSData, NSNumber等类型,就可以使用:writeToFile:atomiclly:方法直接将对象写到属性列表文件中. .属性列表-归档NSDictionary

文档评论(0)

1亿VIP精品文档

相关文档