1

有没有办法找出 Xcode 中超类中指定的初始化程序?
我输入 super().init.. 然后,Xcode 显示超类的所有初始化程序。我想知道是否有任何标志或符号指出哪个是指定的?

也是一个快速的问题。子类中的指定初始化程序(DI)只允许调用超类中的便利初始化程序(CI),因为超类中的 CI 最终将调用超类中的 DI。如果我错了,请纠正我,谢谢。

4

2 回答 2

1

对于任何刚接触 Xcode 的人来说——这也让我困惑了一段时间。关键字的缺失convenience定义了指定的初始值设定项,但根据您查看的位置,您不会总是看到 'convenience' 关键字

可以看到convenience关键字:

  • 单个初始化程序的“开发人员文档”页面上
  • 在“快速帮助”中(右键单击 > 显示快速帮助,或右侧的“快速帮助”窗格)
  • 在Xcode中类的定义中(右键>跳转到定义)

在“开发人员文档”中查看类的概述时,或者在您键入时的代码建议中,您看不到它

(使用 Xcode 13.1)

于 2021-11-06T13:49:13.117 回答
1

在 Swift 中,任何没有用关键字“convenience”标记的构造器都是指定构造器。

根据 Swift 编程语言,指定初始化程序需要在其直接超类中调用指定初始化程序。他们不能调用便利初始化程序。

于 2015-12-20T00:58:06.607 回答