IOS中对象的归档

时间:2021-12-16 15:27:49

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.分别在这两个方法里面描述清楚 如何解析 和 存储 数据即可

两个方法的使用方式如下:

IOS中对象的归档

4.经过以上步骤之后 ,你就可以放心大胆的到任何位置去存储 和读取 自定义的对象的数据了

IOS中对象的归档

好了,关于自定义对象归档 我就理解这么多了 希望大家多多支持哈