阅读 Apple关于框架开发人员的技巧和技术的文档,我发现了关于指定初始化程序的声明:
指定初始化程序是调用
init
超类方法的类的 init 方法。(其他初始化器调用init
类定义的方法。)每个公共类都应该有一个或多个指定的初始化器。
(强调补充。)
根据我的理解——事实上,“指定”这个词的用法——一个类应该只有一个指定的初始化器。但是根据文档,可以接受多个指定的初始化程序。
假设您有两个(或更多)指定初始化器,它们的作用是调用超类的指定初始化器以保证正确的对象初始化。但是如果两个指定初始化器都调用同一个超类的指定初始化器,那么为什么一开始就需要多个呢?不应该重构类以将所有其他init
方法集中到单个指定的初始化程序吗?
我只是有点困惑,什么用例或设计模式需要多个指定的初始值设定项?