复杂数据的数据持久化

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

原文地址:https://www.cnblogs.com/wangguimin/p/4573694.html