gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 11:06:54 24 4
gpt4 key购买 nike

我没有使用 Storyboard中的UIViewController,我想要一个自定义init函数,在其中传递一些NSManagedObjectID目的。我只想像在 Objective-C 中那样调用 super.init() 。像这样:

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

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

Must call designated initializer of the superclass UIViewController

我可以不再这样做吗?

最佳答案

UIViewController 的指定初始化程序是 initWithNibName:bundle:。您应该改为调用它。

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

如果您没有 Nib ,请传入 nil 作为 nibName( bundle 也是可选的)。然后,您可以在 loadView 中构造自定义 View ,或者通过在 viewDidLoad 中将 subview 添加到 self.view 中,与以前一样。

关于ios - 为什么我不能在 Swift 中调用 UIViewController 上默认的 super.init() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52632517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com