我试图理解Swift中的初始化如何与UIViewController的子类一起使用。我认为基本格式是这样的,但是它会抛出错误......
init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) {
//other code
super.init(nibName: String?, bundle: NSBundle?)
}
答案 0 :(得分:9)
您传递的是类型,而不是变量。你必须改为传递变量。
init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) {
// Initialize variables.
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
答案 1 :(得分:4)
现在应该在调用super.init
之前初始化变量init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) {
// Initialize variables.
super.init() // as required
}
答案 2 :(得分:0)
您可以使用/不使用参数进行初始化。
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
// Default Initializer
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
// Initialize with value
init(_ sender: Any?) {
super.init(nibName: nil, bundle: nil)
}