用Swift初始化UIViewController的子类?

时间:2014-06-03 08:50:49

标签: ios swift ios8

我试图理解Swift中的初始化如何与UIViewController的子类一起使用。我认为基本格式是这样的,但是它会抛出错误......

init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)   {
    //other code
    super.init(nibName: String?, bundle: NSBundle?)
}

3 个答案:

答案 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)
}