我正在尝试使用NSKeyedArchiver
归档对象树。树中的所有节点都支持NSCoding
,但我无法访问源代码,因此无法更改任何内容。但是,我想在编码期间包含一些额外的NSString
和一些节点。取消归档时,我想获取该字符串(如果可用)并根据字符串的内容进行一些额外的设置。
我怎么能以优雅的方式做到这一点?我想在编码时替换子类,在子类中实现额外的编码。并使子类'initWithCoder:
返回超类的实例,正确初始化和设置。这个问题是,我的树中可能有节点类的“真正”子类。如果对这样的子类进行编码,则替换将不起作用。或者至少我看不出来。
目前我正在研究NSKeyedArchiver的子类化,但我不确定在哪里可以注入任何东西,或者这是一个好的方法。