【发布时间】:2015-08-19 14:29:12
【问题描述】:
我有一个带有两个 init 方法的基类 - 一个是用参数列表指定的,另一个是从 NSDictionary(用于序列化对象)获取参数值的便利 init。一切都很好,直到我尝试创建一个子类 - 如果我尝试调用匹配的 super.init(...) 并要求我调用子类的指定 init,便利 init 会产生错误。超类包含用于提取参数值的密钥,我不想复制代码或拥有公钥值。
我可以设置虚拟值并使用单独的 loadFromDict() 方法(然后可以被覆盖),但这似乎很尴尬。还有其他方法吗?
【问题讨论】:
-
一个(最小的)代码示例会很有帮助......
-
您说您不想要“公共”键值。 “内部”键值会起作用吗?如果它们被标记为“内部”,但属于同一模块的一部分,那么大概子类将能够看到它们,并且它们仍然不会公开。如果他们是“私人的”,那当然行不通……
标签: macos swift serialization init