根据文档,我创建了一个自定义子类,NSTextFieldCell
其唯一目的是覆盖方法setUpFieldEditorAttributes:
。
文档没有提到NSTextFieldCell
's 或其超类的任何初始化程序NSActionCell
,但文档NSCell
明确提到:
当子类化 NSCell 时,你必须实现所有指定的初始化器。这些方法是:init、initWithCoder:、initTextCell: 和 initImageCell:。
现在,由于我在自定义子类中并没有真正做任何事情,除了覆盖 Cocoa 类中的显式覆盖点,创建 4(!)只调用其超类实现的初始化器真的有什么意义吗?
由于init...
Objective-C 中方法的冗长特性,这将使实现中的代码行数增加五倍,要编写的注释数量(和阅读,对于这类事情的人来说)和通常维护的数量。
我知道我本可以在我写这篇文章的时候创建这些方法,但我真的想知道是否存在只调用 super 的方法有什么不同?
编辑添加:
我误读了NSTextFieldCell
文档,其中还指出必须实现所有指定的初始化程序,但问题仍然存在 - 3(init
不知何故作为指定初始化程序在继承链中消失了)只调用 super 的初始化程序真的有什么不同吗?