数据存储
常用的方式:
XML属性列表 (Plist(NSArray/NSDictionary)) 存储数据类型是包括NSString NSNumber NSDate, NSArray/NSDictionary这些以NS开头的数据类型才可以存储
Preference(偏好设置 NSUserDefault) 比如 记住用户的账号\密码 优点:不关心文件名,直接存储
NSCoding (归档/解档)NSKeyedArchiver/NSKeyedUnArchiver 用于存储小批量或者中等批量的数据,由于使用NSKeyedArchiver归档时,他是直接'''覆盖'''文件,这样以前的数据就没有.
使用NSKeyedUnArchiver解档时,它会一次性读取所有的存储在文件中的对象,内存受不了,所以不适合大数据存储
SQLite3 数据库 存储大量的数据
CoreData 是苹果公司对SQLite的封装
应用沙盒(文件系统目录)的结构分析:
应用程序包(存放所有的资源文件和可执行文件)
Documents 保存应用程序运行时 需要持久化的数据 iTunes 同步设备时会备份该目录,列如:游戏应用可以将该游戏存档保存在该目录
利用NSSearchPathForDirectoriesInDomains函数
// NSUserDomainMask 代表从用户文件夹下找
// YES 代表展开路径中的波浪字符“~”
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO);
// 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素
NSString *documents = [array objectAtIndex:0];
tmp 保存应用运行时所需的临时数据,使用完毕后再将相应的文件删除,应用没有运行时,也可能会清除该目录下的文件,iTunes 不会同步该文件
NSString *tmp = NSTemporaryDirrectory();
Library/Caches 保存应用程序生成的需要持久化的数据,iTunes同步设备不会备份该目录,一般存数体积大,不需要备份的非重要数据
利用 NSSearchPathForDirectoriesInDomains 方法 NSUserDomainMask 设为 NSCachesDirectory
Library/Preference 保存应用的所有偏好设置,IOS的setting设置,应用会在该目录下查找应用的设置信息,iTunes会同步该目录
NSUserDefaults 类存取该目录的设置信息