美文网首页
iOS 归档的使用 NSKeyedUnarchiver

iOS 归档的使用 NSKeyedUnarchiver

作者: 移动的键盘 | 来源:发表于2020-12-15 16:18 被阅读0次

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;
}

相关文章

网友评论

      本文标题:iOS 归档的使用 NSKeyedUnarchiver

      本文链接:https://www.haomeiwen.com/subject/hvywgktx.html