NSString *home = NSHomeDirectory();
NSString *documents = [home stringByAppendingPathComponent:@"Documents"];
// 不建议采用,因为新版本的操作系统可能会修改目录名
// NSUserDomainMask代表从用户文件夹下找
//YES 代表展开路径中的波浪字符“~”
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO);
// 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素
NSString *documents = [array objectAtIndex:0];
// 将数据封装成字典
NSMutableDictionary *dict =[NSMutableDictionary dictionary];
[dict setObject:@"母鸡" forKey:@"name"];
[dict setObject:@"15013141314" forKey:@"phone"];
[dict setObject:@"27" forKey:@"age"];
// 将字典持久化到Documents/stu.plist文件中 (写入)
[dict writeToFile:pathatomically:YES];
// 读取Documents/stu.plist的内容,实例化NSDictionary
NSDictionary *dict =[NSDictionary dictionaryWithContentsOfFile:path];
//使用偏好设置保存数据 (写)(修改:将对应的属性再set一下)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//保存的数据
[defaults setObject:@"zhangsan" forKey:@"account"];
[defaults setObject:@"123" forKey:@"password"];
[defaults setBool:YES forKey:@"autoLogin"];
[defaults setBool:YES forKey:@"rememberPwd"];
//调用同步的方法,把数据保存到沙盒文件
[defaults synchronize];
//读取 用户偏好设置 的数据 (读)
NSUserDefaults *defautls = [NSUserDefaults standardUserDefaults];
NSString *account = [defautls objectForKey:@"account"];
NSString *password = [defautls objectForKey:@"password"];
BOOL rememberPwd = [defautls boolForKey:@"rememberPwd"];
BOOL autoLogin = [defautls boolForKey:@"autoLogin"];
----————————————————————————————————————————————————————————————————
//删除 用户偏好设置 数据 (删除)
NSUserDefaults *defautls = [NSUserDefaults standardUserDefaults];
[defautls removeObjectForKey:@"account"];
//删除记得也要调用 同步的方法
[defautls synchronize];
每次归档对象时,都会调用这个方法。一般在这个方法里面指定如何归档对象中的每个实例变量,可以使用encodeObject:forKey:方法归档实例变量
每次从文件中恢复(解码)对象时,都会调用这个方法。一般在这个方法里面指定如何解码文件中的数据为对象的实例变量,可以使用decodeObject:forKey方法解码实例变量
Contact *contact = [[Contact alloc] init];
contact.name = @"张三";
contact.age = 27;
contact.tel = @"13531232323";
// 归档
[NSKeyedArchiver archiveRootObject:contact toFile:self.plistPath];
//读数据(解档)
Contact *contact = [NSKeyedUnarchiver unarchiveObjectWithFile:self.plistPath];