我了解如何使用NSCoding
将对象转换为归档对象。那不是我的问题。
我想知道为什么没有NSCoding
的默认实现可以处理99%的案例。
例如,每次我编写一个我想要存档的自定义类时,都会执行以下操作:
-(void)encodeWithCoder:
和-(id)initWithCoder:
。
我怀疑几乎NSCoding
的每一个实现都与我的完全一样,唯一的变化是需要操作的特定属性。
在我看来,这对于标准实施来说是一个完美的地方,如果你的特殊情况如果时髦,可以选择覆盖它。
我对发生的事情有误解吗?如果没有,我可以在NSObject
上添加一个类别,以便在我的项目中的所有对象上实现这个常用方法吗?
答案 0 :(得分:3)
我怀疑你的问题的答案很简单,NSCoding的设计早在Objective-C属性存在之前。 (NSCoding是1994年OpenStep spec的一部分,而属性在2007年以Objective-C 2.0到达。)此外,某些类的属性不适合以后序列化。
但是,您提出的解决方案可以节省大量时间!至少存在一种这样的解决方案。查看AutoCoding。