当前位置: 首页 > 面试题库 >

为什么我不能在Swift中的UIViewController上调用默认的super.init()?

卫寒
2023-03-14
问题内容

我不是UIViewController从情节提要中使用a
,而是要有一个自定义init函数,可以在其中传递NSManagedObjectID某些对象的。我只想像super.init()在Objective-
C中一样打电话。像这样:

init(objectId: NSManagedObjectID) {
    super.init()
}

但是我收到以下编译器错误:

必须调用超类UIViewController的指定初始化程序

我可以不再这样做吗?


问题答案:

对于指定的初始化器UIViewControllerinitWithNibName:bundle:。您应该打电话给它。

参见http://www.bignerdranch.com/blog/real-iphone-crap-2-initwithnibnamebundle-
is-the-designated-initializer-of-
uiviewcontroller/

如果您没有笔尖,请nil输入nibName(捆绑包也是可选的)。然后,你可以在构建自定义视图loadView或通过添加子视图self.viewviewDidLoad,你一样使用。



 类似资料:
  • 问题内容: 我正在阅读有关Java 8的教程,作者在 其中显示了代码: 然后说 无法从lambda表达式内访问默认方法。以下代码无法编译: 但是他没有解释为什么这是不可能的。我运行了代码,但出现了错误, 不兼容的类型:公式不是功能界面` 那么为什么不可能或错误的含义是什么呢? 该接口满足具有一种抽象方法的功能接口的要求。 问题答案: 这或多或少是范围的问题。从JLS 与出现在匿名类声明中的代码不同

  • 我正在使用forEach循环一个nodeList。我的代码如下 此代码引发错误为 未捕获的TypeError:Array.Foreach不是函数 然而,一些较旧的浏览器还没有实现nodelist.foreach()和array.from()。但是这些限制可以通过使用array.prototype.foreach()来规避(本文档中有更多内容)。 参考:MDN

  • 我对Swift中关于var和关键字{get set}的使用的协议有疑问。 来自Apple文档: 这将不是公正的: 我错过了什么?

  • 问题内容: 为什么这段代码会引发SyntaxError? 尽管以下代码段运行时没有可见错误: 问题答案: 必须将所有必需的参数放在任何默认参数之前。仅仅是因为它们是强制性的,而默认参数不是必需的。从语法上讲,如果允许使用混合模式,解释器将 无法 决定哪些值与哪些参数匹配。如果参数的输入顺序不正确,则会引发A : 让我们使用您的函数来查看关键字参数。 假设其允许声明函数如上,然后使用上述声明,我们可

  • 问题内容: 我正在尝试使用方法两次读取给定文件的内容。奇怪的是,当我第二次调用它时,似乎没有将文件内容作为字符串返回? 这是代码 当然我知道这不是最有效或最好的方法,这不是重点。关键是,为什么我不能调用两次?我需要重置文件句柄吗?或者关闭/重新打开文件以执行此操作? 问题答案: 调用read()将读取整个文件,并将读取的游标留在文件的末尾(仅读取其他内容)。如果你希望一次阅读一定数量的行,则可以使