参开 http://blog.csdn.net/chelongfei/article/details/49784633
在 Swift 中, 类的初始化有两种方式, 分别是
- Designated Initializer
- Convenience Initializer
Designated Initializer 在本篇博客中译为指定构造器, 而 Convenience Initializer 译为便利构造器.
指定构造器在一个类中必须至少有一个, 而便利构造器的数量没有限制.
指定构造器(Designated Initializer)
Designated initializers are the primary initializers for a class. A designated initializer fully initializes all properties introduced by that class and calls an appropriate superclass initializer to continue the initialization process up the superclass chain.
指定构造器是类的主要构造器, 要在指定构造器中初始化所有的属性, 并且要在调用父类合适的指定构造器.
//例如UIKit框架中的构造器
init()
init(frame: CGRect)
init(style: UITableViewCellStyle, reuseIdentifier: String?) //当定义一个指定构造器的时候, 必须调用父类的某一个指定构造器
init(imageName: String, prompt: String = "") { //init为自定义构造器
super.init(style: .Default, reuseIdentifier: nil)//在自定义构造器中必须调用父类构造器
...
}