gpt4 book ai didi

swift - 在 UIViewController 的 convenience init 中调用了什么初始化器?

转载 作者:可可西里 更新时间:2023-11-01 01:07:35 31 4
gpt4 key购买 nike

我经常在 UIViewController 中使用 convenience init 来制作自定义初始化程序。

但我不知道 self.init() 时调用的 UIViewController 的现有初始化器是什么。

是不是public init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)

UIViewController 的 convenience init 中 self.init() 调用了什么?

final class SampleViewController: UIViewController {
private var component: Component?

convenience init(component: Component) { // Custom initializer
self.init() // What is this initializer?
self.component = component
}

override func viewDidLoad() {
...
}
...
}

最佳答案

UIViewController.init 调用 UIViewController.init(nibName: nil, bundle: nil)。这意味着 nibName 将等于类的名称,并且 bundle 将成为主包。

UIViewController.init 只是一个方便的初始化程序。在 swift 中,这可以使用默认参数 UIViewController.init(nibName: String? = nil, bundle: NSBundle? = nil) 实现,但这是一个旧的 Objective-C API,而 Objective-C 没有默认参数,这就是为什么有一个单独的便利 init()

关于swift - 在 UIViewController 的 convenience init 中调用了什么初始化器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54309882/

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