1、归档处理的数据类型有NSString,NSArrry,NSData,NSDictionary
2、数据模型要使用归档必须实现<NSSecureCoding,NSCoding>协议
以数据模型举例
保存数据
if (@available(iOS 12.0,*)) {
NSError *error;
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:token requiringSecureCoding:YES error:&error];
if (error) {
NSLog(@"token保存失败%@",error);
} else {
[data writeToFile:[self tokenFilePath] atomically:YES];
}
} else {
[NSKeyedArchiver archiveRootObject:token toFile:[self tokenFilePath]];
}
读取数据
if (@available(iOS 12.0,*)) {
NSData *data = [NSData dataWithContentsOfFile:[self tokenFilePath]];
NSError *error;
Token *token = [NSKeyedUnarchiver unarchivedObjectOfClass:Token.class fromData:data error:&error];
if (error) {
NSLog(@"token获取失败%@",error);
}
return token;
} else {
Token *token = [NSKeyedUnarchiver unarchiveObjectWithFile:[self tokenFilePath]];
return token;
}
创建沙盒路径
+ (NSString *)tokenFilePath {
NSString *pathDocuments = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [pathDocuments stringByAppendingPathComponent:@"xxx.plist"];
return path;
}
网友评论