1、为自定义数据类型添加 NSCoding 协议,实现该协议的接口
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (id)initWithCoder:(NSCoder *)aDecoder;
2、序列化对象的属性
id 类型的属性直接用 aCoder encodeObject: forKey: 序列化;
基础数值类型要用 NSNumber 封装后再进行序列化。
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.regionName forKey:@"regionName"];
NSNumber *lon = [NSNumber numberWithDouble:self.location.longitude];
NSNumber *lat = [NSNumber numberWithDouble:self.location.latitude];
[aCoder encodeObject:lon forKey:@"regionLon"];
[aCoder encodeObject:lat forKey:@"regionLat"];
}
3、反序列化对象的属性
使用 aDecoder decod