iOS数据持久化方案:
NSUserDefault:
NSUseDefaults *default = [NSUserDefaults standardUserDefaults];
[default setObject:@"你好" forKey:@"say"];
[default objectForKey:@"say"];
属性列表(plist文件):
使用xml格式,存储在沙盒中。
沙盒的目录结构:
document:
将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据。该路径可通过配置实现iTunes共享文件。可被iTunes备份。
NSString *documents = [NSSearchPathForDirectoriesInDomain(NSDocumentDirectory,NSUserDomainMask,YES) lastObject];
library:
preference:
应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.
cache:
存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。
NSString *cacheDirectory = [NSSearchPathForDirectoriesInDomain(NSCacheDirectory,NSUserDomainMask,YES) lastObject];
tmp:
这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。该路径下的文件不会被iTunes备份。
NSString *tmpDirectory = NSTemporaryDirectory();
程序包:
archiver(归档)
序列化和反序列化
NSKeyArchiver
NSKeyUnArchiver
要进行归档的对象必须遵守NSCoding协议,同时应实现编码和解码的方法。
coredata
使用内置的sqllite数据库,提供一种将对象模型转化为关系模型的映射功能。
sqllite本地数据库