数据存储 ----归档解档

归档存储

  • 使用步骤
    • 遵守NSCoding协议
    • 实现协议方法
    • 通过NSKeyedArchive归档自定义对象
    • 通过NSKeyedUnArchive解档自定义对象
  • 遵守协议
    #pragma mark - 遵守NSCoding协议
    @interface CZPerson () <NSCoding>
    
  • 实现协议方法
#pragma mark - 实现协议方法
/**
 * 1.在"归档"的时候调用
 * "归档":指的就是把对象写入到文件的过程
 * 告诉系统,如何对当前对象进行归档(写入文件)
 */
- (void)encodeWithCoder:(NSCoder *)encoder {

    [encoder encodeObject:self.name forKey:@"user_name"];
    [encoder encodeInt:self.age forKey:@"user_age"];
    [encoder encodeBool:self.gender forKey:@"user_gender"];

}

/**
 *  2.在"反归档"的时候调用
 *  "反归档":指的是从文件中读取对象的过程
 *  如何将读取到的文件中的数据转换为一个对象
 */
- (instancetype)initWithCoder:(NSCoder *)decoder {

    if (self = [super init]) {

        self.name = [decoder decodeObjectForKey:@"user_name"];
        self.age = [decoder decodeIntForKey:@"user_age"];
        self.gender = [decoder decodeBoolForKey:@"user_gender"];

    }
    return self;
}
  • 归档数据
// 1.创建自定义对象
CZPerson *p1 = [[CZPerson alloc] init];
p1.name = @"jack";
p1.age = 20;
p1.gender = 1;

// 2.指定要归档的文件
NSString *filePath = [self filePathWithFileName:@"gd.abc"];
  • 解档读取数据
// 1.指定要解档的文件
NSString *filePath = [self filePathWithFileName:@"gd.abc"];
// 2.通过解档读取自定义对象
CZPerson *person = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值