首页 理论教育 归档器和解档器的数据读写操作

归档器和解档器的数据读写操作

时间:2026-01-23 理论教育 Jonker 版权反馈
【摘要】:带有键的归档器和解档器是苹果提供的可以将任何实例和二进制数据进行转换的两个类。与属性列表的序列化不同的是,归档器可以转换任何的类型,只要是满足NSCoding协议的自定义类型都可以被NSKeyedArchiver保存下来。下面我们可以声明一个类型,它满足NSCoding并且实现了encode()和init()方法,这样NSKeyedArchiver和NSKeyed Unarchiver就可以进行转换。

带有键的归档器(NSKeyedArchiver)和解档器(NSKeyedUnarchiver)是苹果提供的可以将任何实例和二进制数据进行转换的两个类。与属性列表的序列化不同的是,归档器可以转换任何的类型,只要是满足NSCoding协议的自定义类型都可以被NSKeyedArchiver保存下来。NSCoding协议定义了自定义类型需要实现的读写方法。归档器在对一个类型的实例进行操作时,会调用这个实例的encode()方法:

实例可以在这个方法中将自己需要归档的属性放入aCoder中,如果是从二进制的data中解档(unarchive)则用协议中定义的init()方法:

这时需要从aDecoder中将需要解档的属性读出,并设置到实例的属性上。下面我们可以声明一个类型,它满足NSCoding并且实现了encode()和init()方法,这样NSKeyedArchiver和NSKeyed Unarchiver就可以进行转换。首先创建一个ArchiverModel类,继承自NSObject类,满足NSCoding,代码示例如下:(https://www.xing528.com)

动手写19.2.2 NSKeyedArchiverPractise->ArchiveModel.swift

这说明整个归档和解档的过程是成功的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈