用 Swift 初始化 UIViewController 的子类?
Posted
技术标签:
【中文标题】用 Swift 初始化 UIViewController 的子类?【英文标题】:Initialize a subclass of UIViewController with Swift? 【发布时间】:2014-06-03 08:50:49 【问题描述】:我试图通过 UIViewController 的子类了解 Swift 中的初始化是如何工作的。我以为基本格式是这样的,但它会抛出错误......
init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)
//other code
super.init(nibName: String?, bundle: NSBundle?)
【问题讨论】:
【参考方案1】:您传递的是类型,而不是变量。您必须改为传递变量。
init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)
// Initialize variables.
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
【讨论】:
你应该总是在调用 super 之前初始化你的变量。【参考方案2】:现在应该在调用 super.init 之前初始化变量
init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)
// Initialize variables.
super.init() // as required
【讨论】:
【参考方案3】:您可以使用/不使用参数进行初始化。
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)
【讨论】:
以上是关于用 Swift 初始化 UIViewController 的子类?的主要内容,如果未能解决你的问题,请参考以下文章
如何从情节提要中获取 UIViewControl 对象的笔尖名称