参开 http://blog.csdn.net/chelongfei/article/details/49784633

 

 

在 Swift 中, 类的初始化有两种方式, 分别是

  1. Designated Initializer
  2. 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)//在自定义构造器中必须调用父类构造器
    ...
}