【发布时间】:2014-05-17 15:16:21
【问题描述】:
我了解如何使用NSCoding 将我的对象转换为存档对象。这不是我的问题。
我想知道为什么没有可以处理大约 99% 的情况的 NSCoding 的默认实现。
例如,每次我编写一个想要归档的自定义类时,我都会执行以下操作:
- 实现
-(void)encodeWithCoder:和-(id)initWithCoder:。 - 查看我的属性列表,为每个属性编写一对语句(一个编码,一个解码)。
- 如果属性是对象,我使用encode/decodeObject方法。
- 如果属性是值,我使用对应的encode/decode方法。
- 我总是使用该物业的名称作为我的钥匙。
我怀疑NSCoding 的几乎每个实现都与我的完全一样,唯一的变化是需要操作的特定属性。
在我看来,这将是标准实现的理想场所,如果您的特殊情况很时髦,可以选择覆盖。
我对正在发生的事情有误解吗?如果没有,我可以在NSObject 上添加一个类别,以便在我的项目中的所有对象上实现这个通用方法吗?
【问题讨论】: