# 16、提供“全能初始化方法”

全能初始化方法 or 指定初始化方法 `Designated initializer`

可以看这篇：[iOS\_指定初始化方法Designated Initializer和非指定初始化方法Secondary Initializer](https://blog.csdn.net/Margaret_MO/article/details/109648450)

要点：

* 在类中提供一个全能初始化方法，并于文档里指明。其他初始化方法均应调用此方法
* 若全能初始化方法与超类不同，则需覆写超类中的对应方法
* 如果超类的初始化方法不适用于子类，那么应该覆写这个超类方法，并在其中抛出异常
