【问题标题】:Check designated initializer in xcode检查 xcode 中的指定初始化程序
【发布时间】:2016-03-26 09:17:54
【问题描述】:

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

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

【问题讨论】:

  • 我经常缺少这个选项。不明白为什么不提供它,当输入 super.init 时,你基本上会得到一堆无效的完成,这没什么意义。

标签: xcode swift designated-initializer


【解决方案1】:

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

根据The Swift Programming Language,指定初始化程序必须在其直接超类中调用指定初始化程序。他们不能调用便利构造器。

【讨论】:

    【解决方案2】:

    对于任何刚接触 Xcode 的人 - 这也让我困惑了一段时间。 convenience 关键字的缺失定义了指定的初始化程序,但根据您的查看位置,您不会总是看到“方便”关键字

    可以看到convenience关键字:

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

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

    (使用 Xcode 13.1)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      相关资源
      最近更新 更多