IOS开发NSCoding

NSCoding

官方解释:

A protocol that enables an object to be encoded and decoded for archiving and distribution.

为存档和分发而对对象进行编码和解码的一种协议。

NSCoding是把数据存储在iOS和Mac OS上的一种极其简单和方便的方式,它把模型对象直接转变成一个文件,然后再把这个文件重新加载到内存里,并不需要任何文件解析和序列化的逻辑。如果要把对象保存到一个数据文件中(假设这个对象实现了NSCoding协议),做法如下:

//将class存储到本地 ps:这里的filePath指文件路径
TestCode *test = [[TestCode alloc] init];
test.name = @"Bob";
test.gender = @"Man";
[NSKeyedArchiver archiveRootObject:test toFile:filePath];

//将存入的数据从本地取出
TestCode *getTest = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];

做到以上存储效果的前提是遵循NSCoding协议

在TestCode这个类里面实现NSCoding协议的两个方法:

  • - (void)encodeWithCoder:(NSCoder *)aCoder //编码方法
  • - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder //解码方法
// 编码
- (void)encodeWithCoder:(NSCoder *)aCoder{
    [aCoder encodeObject:self.name forKey:@"title"];
    [aCoder encodeObject:self.gender forKey:@"gender"];
}

// 解码
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder{
    self = [super init];
    if (self) {
        self.name = [aDecoder decodeObjectForKey:@"name"];
        self.gender = [aDecoder decodeObjectForKey:@"gender"];
    }
    return self;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值