我正在嘗試撰寫自己的 UIVC 初始化程式:
let person: Person
init(withPerson person: Person) {
self.person = person
super.init()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
但在我的協調員中,我有這行:
func getViewController() -> UIViewController? {
return ViewController(nibName: "ViewController", bundle: Bundle.main)
}
它會導致崩潰并出現錯誤:
Fatal error: Use of unimplemented initializer 'init(nibName:bundle:)' for class 'ViewController'
當我嘗試添加時:
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
它會出現以下錯誤:
Property 'self.person' not initialized at super.init call
有沒有辦法解決崩潰?
uj5u.com熱心網友回復:
init(withPerson person: Person) {
self.person = person
super.init (nibName: "ViewController", bundle: Bundle.main)
}
uj5u.com熱心網友回復:
您必須呼叫super.init(nibName:bundle:)而不是super.init()因為它是指定的初始化程式。
如果您為 nibName 引數指定 nil 并且您沒有覆寫 loadView() 方法,則視圖控制器將按照此處所述搜索 nib 檔案。
init(withPerson person: Person) {
self.person = person
super.init(nibName: nil, bundle: nil)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/407487.html
標籤:
下一篇:在除錯器下運行tox
