ios提供了两个类 NSKeyedArichiver NSKeyedUnarchiver对自定义对象进行归档 和解档操作
归档常见方法
- (void)encodeObject:(id)objv forKey:(NSString *)key;
- (void)encodeConditionalObject:(id)objv forKey:(NSString *)key;
- (void)encodeBool:(BOOL)boolv forKey:(NSString *)key;
- (void)encodeInt:(int)intv forKey:(NSString *)key; // native int
- (void)encodeInt32:(int32_t)intv forKey:(NSString *)key;
- (void)encodeInt64:(int64_t)intv forKey:(NSString *)key;
- (void)encodeFloat:(float)realv forKey:(NSString *)key;
- (void)encodeDouble:(double)realv forKey:(NSString *)key;
- (void)encodeBytes:(const uint8_t *)bytesp length:(NSUInteger)lenv forKey:(NSString *)key;
解档常见方法
- (id)decodeObjectForKey:(NSString *)key;
- (BOOL)decodeBoolForKey:(NSString *)key;
- (int)decodeIntForKey:(NSString *)key;
- (int32_t)decodeInt32ForKey:(NSString *)key;
- (int64_t)decodeInt64ForKey:(NSString *)key;
- (float)decodeFloatForKey:(NSString *)key;
- (double)decodeDoubleForKey:(NSString *)key;
上面这些方法使用都很简单 我这里就不做过多赘述
我这里主要说下 对于我们自定义的对象 如何进行归档解档操作: 步骤如下:
1.首先自定义的对象必须要遵守NSCoding 协议
2.必须实现协议的两个方法
*- (id)initWithCoder:(NSCoder *)aDecoder
*- (void)encodeWithCoder:(NSCoder *)aCoder
3.分别在这两个方法里面描述清楚 如何解析 和 存储 数据即可
两个方法的使用方式如下:
4.经过以上步骤之后 ,你就可以放心大胆的到任何位置去存储 和读取 自定义的对象的数据了
好了,关于自定义对象归档 我就理解这么多了 希望大家多多支持哈
来源:https://www.cnblogs.com/syios/p/4763382.html

