plist方式保存数据
plist可以保存的类型为数组与字典.
在介绍plist文件保存之前,先介绍几个方法。
NSHomeDirectory(); 该方法用来获取我们ios文件在应用沙盒中的文件位置.
NSTemporaryDirectory(); 该方法用来获取我们ios文件在应用沙盒中的tmp文件夹
位置.
NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde); 该方法用来查找caches文件夹,因为没有直接的方法直接获取到caches文件夹
注意事项:
如果数组或字典中 存在NSNull 对象, 保存操作将会失败.
保存
//定义一个数组对象.
NSArray *arr = @[@"123", @1];
/***NSUserDomainMask 代表在用户的手机目录上查找*NSCachesDirectory 查找library/caches路径*返回值是一个数组.*/
NSString *cachePath =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES)[0];
//拼接自己路径,将要保存的数据存入arr.plist文件夹中.
NSString *filePath = [cachePath stringByAppendingPathComponent:@"arr.plist"];
//写入plist文件.
[arr writeToFile:filePath atomically:YES];
读取
//获取caches文件夹.
NSString *cachePath =NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
//获取arr.plist文件路径
NSString *filePath = [cachePath stringByAppendingPathComponent:@"arr.plist"];
//读取文件
NSArray *arr = [NSArray arrayWithContentsOfFile:filePath];
Preferences方式保存数据
相比plist方式保存数据来说,Preferences方式的优势在于:1.不需要关心文件名.
2.快速的键值对存取.
Preferences 与 application 一样,是一个单例.
保存
//获取对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//保存对象
[defaults setObject:@"xmg" forKey:@"account"];
[defaults setObject:@"123" forKey:@"pwd"];
[defaults setBool:YES forKey:@"rmbPwd"];
读取
//获取对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//通过键值对获取数据.
NSString *account = [defaults objectForKey:@"account"];