【发布时间】:2014-03-29 17:53:02
【问题描述】:
B 是 A 的子类。C 是 A 的子类。当我创建 c 时,我在 C 中的 .m 内执行 if((self = [NSKeyedUnarchiver unarchiveObjectWithFile:…])) { }。
因此,尽管我将 C.h 中的超类设置为 B(这是我想要的),但当我从 unarchiveObjectWithFile: 创建 C 对象时,因为该对象是 A 的子类,我不能强迫它成为子类B.(很难解释抱歉)。
有什么办法吗???
换句话说:当我unarchiveObjectWithFile:… 一个属于A 类的对象,而我有另一个属于A 子类的B 类时,unarchiveObjectWithFile: 可以是B 的子类吗? (这是允许的,因为 B 是 a 的子类)
【问题讨论】:
标签: ios objective-c nskeyedarchiver nskeyedunarchiver