复杂对象无法象 NSString,NSArray等简单对象一样直接通过 writeToFile 实现持久化,当对复杂对象进行持久化时需要将其转化为 NSData (归档),但获取数据时,将 NSData 转化为复杂对象 (反归档)下面通过一个简单的 Person 类实现归档和反归 ...
复杂对象无法象 NSString,NSArray等简单对象一样直接通过 writeToFile 实现持久化,当对复杂对象进行持久化时需要将其转化为 NSData (归档),但获取数据时,将 NSData 转化为复杂对象 (反归档)
下面通过一个简单的 Person 类实现归档和反归档:
1.新建 Peoson 类,有两个属性 name,age,其需要遵守 <NSCoding> 协议,实现- (void)encodeWithCoder: 和 - (instancetype)initWithCoder: 方法
代码:
1 // 2 // Person.m 3 // UILesson18_archiver 4 // 5 // Created by Ager on 15/11/5. 6 // Copyright © 2015年 Ager. All rights reserved. 7 // 8 9 #import "Person.h"10 11 @implementation Person12 13 //对属性做归档处理14 - (void)encodeWithCoder:(NSCoder *)aCoder{15 16 [aCoder encodeObject:self.name forKey:@"name"];17 [aCoder encodeInteger: self.age forKey:@"age"];18 19 }20 21 //反归档处理22 - (instancetype)initWithCoder:(NSCoder *)aDecoder{23 24 if (self = [super init]) {25 self.name = [aDecoder decodeObjectForKey:@"name"];26 self.age = [aDecoder decodeIntegerForKey:@"age"];27 }28 return self;29 }30 31 @end
原标题:归档 NSKeyedArchiver
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。