注: 我们在这篇博客中提到的构造器都为类构造器, 在这里不提及值构造器的使用,详见文档.
刚刚使用这个构造器的时候我感觉到很困惑啊, 不就是个 init, 你给我搞这么多事情干什么?...而这与 ObjC 的区别主要在于第一部分, 因为在 ObjC 中所有的属性如果不赋值都会默认被初始化为 nil或者 0. 而在 Swift 中可以所有属性的值由开发者来指定....如果子类没有定义任何的指定构造器, 那么会默认继承所有来自父类的指定构造器....: nil)}
这是第一个解决的办法, 不过我一般使用另一种, 在属性定义的时候就为他说初始化一个值....构造器在第一阶段构造完成之前, 不能调用任何实例方法, 不能读取任何实例属性的值,self 不能被引用.
继承相关
如果子类没有定义任何的指定构造器, 那么会默认继承所有来自父类的指定构造器.