它说找不到接受所提供参数的 init 的重载
class MyController: UIViewController {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
convenience init() {
self.init(nibName: "CreditOptionsView", bundle: nil)
}
}
为什么? 它在 XCode 6 beta 2 中工作
最佳答案
我解决了写一个空的覆盖函数的问题,我不知道为什么 swift 找不到它。例如:
class MyController: UIViewController {
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?){
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
convenience init() {
self.init(nibName: "CreditOptionsView", bundle: nil)
}
}
同样的事情发生在 UINavigationController
的便利初始化中,并解决了再次添加空的 override
问题:
class MyNavigationController: UINavigationController {
override init(rootViewController: UIViewController) {
super.init(rootViewController: rootViewController)
}
convenience init() {
self.init(rootViewController: UIViewController())
}
}
关于swift - XCode 6 beta 4 便利初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29256924/