注: 我们在这篇博客中提到的构造器都为类构造器, 在这里不提及值构造器的使用,详见文档.
刚刚使用这个构造器的时候我感觉到很困惑啊, 不就是个 init, 你给我搞这么多事情干什么?...每个类应该只有少量的指定构造器, 大多数类只有一个指定构造器, 我们使用 Swift 做 iOS 开发时就会用到很多 UIKit 框架类的指定构造器, 比如说:
Swift
复制代码
init()init...指定构造器确保其所在类引入的所有存储型属性都已赋值. 存储型属性所属的内存完成初始化.
指定构造器将调用父类的构造器, 完成父类属性的初始化....最终, 任意构造器链中的便利构造器可以有机会定制实例和使用 self
父类中的指定构造器定制实例的属性 (可能).
子类中的指定构造器定制实例的属性....与方法不同的一点是, 在重载构造器的时候, 你不需要添加 override 关键字.