复杂数据的数据持久化
1.要实现数据持久化的自定义类要遵守<NSCopying>协议
2.类中的属性要实现以下操作
//编码协议是让当前类的对象通过固定的编码规则转成NSdata类型的数据
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.message_id forKey:@"message_id"];
}
//解码协议,是在反归档的时候将NSData类型的数据转换成当前类的对象时调用的。解码时用到的key要跟编码时指定的key保持一致
- (id)initWithCoder:(NSCoder *)aDecoder{
if (self = [super init]) {
self.message_id = [aDecoder decodeObjectForKey:@"message_id"];
}
return self;
}
3.存数据:实现数据的归档[NSKeyedArchiver archiveRootObject:(id)rootObject toFile:(NSString *)path];
4.取数据:实现数据的反归档[NSKeyedUnarchiver unarchiveObjectWithFile:(NSString *)path];