open class UIViewController : UIResponder, NSCoding, UIAppearanceContainer, UITraitEnvironment, UIContentContainer, UIFocusEnvironment {
public init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
public init?(coder: NSCoder)
在 Swift 中,构造函数通常以init
开头。
如果在构造函数的 init
关键字后面添加问号 ?
,这意味着这个构造函数可以返回 nil
。这个特性常用于创建可选类型的实例。
例如,如果我们定义了一个名为 Person
的类,并且希望这个类可以通过一个构造函数来初始化,那么我们可以使用一个可选构造函数来初始化类,
class Person {
let name: String
let age: Int
init?(name: String, age: Int) {
if age < 0 {
return nil
}
self.name = name
self.age = age
}
}
意味着在构造函数内部有可能发生错误,导致构造失败,这时候构造函数会返回一个可选值(Optional
)。