文件的三种存储方式
// 归档解档可以针对所有的对象 : 必须要遵守协议 NSCoding
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *flierPath = [path stringByAppendingString:@"abc.date"];
[NSKeyedArchiver archiveRootObject:person toFile:flierPath];
//归档
- (void)encodeWithCoder:(NSCoder *)aCoder {
// 把_name转成啊\NSCoder类型
[aCoder encodeObject:_name forKey:@"name"];
[aCoder encodeInteger:_age forKey:@"age"];
}
//解档
- (instancetype)initWithCoder:(NSCoder *)aDecoder{
if ( self = [super init]) {
self.name = [aDecoder decodeObjectForKey:@"name"];
self.age = [aDecoder decodeIntegerForKey:@"age"];
}
return self;
}
//存入文件
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// 保存用户数据
[defaults setObject:@"hju" forKey:@"name"];
[defaults setInteger:18 forKey:@"age"];
[defaults setBool:YES forKey:@"123"];
// 写入完要同步
[defaults synchronize];
// 取出文件
NSString *name = [[NSUserDefaults standardUserDefaults]objectForKey:@"name"];
NSInteger age = [[NSUserDefaults standardUserDefaults]integerForKey:@"age"];
BOOL married = [[NSUserDefaults standardUserDefaults]boolForKey:@"123"];
//查找文件
NSString *path = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES)[0];
//拼接文件名
NSString *fliePath = [path stringByAppendingString:@"aa.plist"];
// 存入数组
NSArray *array = @[@"123",@"12"];
[array writeToFile:fliePath atomically:YES];
// 存入字典
NSDictionary *dict = @{@"cc":@"ff"};
[dict writeToFile:fliePath atomically:YES];
//读取
// 查找文件
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
// 拼接路径
NSString *fliePath = [path stringByAppendingString:@"aa.plist"];
// 读取文件
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:fliePath];