NSCoding是一个协议,是为了 NSData 与对象互转转化而设计的协议,任何需要转为 NSData 对象都需要遵循这个协议。只有类继承它,此类的实例才能被编码(encode)和译码(decode),即转为 Data。
也需要实现这两个方法
- initWithCoder(NSCoder:coder) //从coder中读取数据,保存到相应的变量中,即反序列化数据
- encodeWithCoder(NSCoder:coder) //读取实例变量,并把这些数据写到coder中去。序列化数据
例如下图(swift 语法已过期)
NSCoder
NSCoder用来进行归档和解档,只能继承,不能实例化。一般使用下面子类来进行对象归档和解档。
- NSKeyedUnarchiver 从二进制流读取对象(Data -> 对象)。
- NSKeyedArchiver 把对象写到二进制流中去(对象->Data)