Прочитав документацию Apple по Советы и методики для разработчиков платформ , я натолкнулся на следующее утверждение о назначенных инициализаторах:
Назначенный инициализатор - это метод init класса, которыйвызывает метод init
суперкласса.(Другие инициализаторы вызывают методы init
, определенные классом.) Каждый открытый класс должен иметь один или несколько обозначенных инициализаторов.
(выделение добавлено).
Исходя из моего понимания - и действительно, самого употребления слова «обозначенный» - у класса должен быть только один назначенный инициализатор.Но согласно документации, допустимы несколько назначенных инициализаторов.
Предполагая, что у вас есть два (или более) назначенных инициализатора, их роль состоит в том, чтобы вызвать назначенный инициализатор суперкласса, чтобы гарантировать правильную инициализацию объекта.Но если оба назначенных инициализатора вызывают инициализатор, назначенный одному и тому же суперклассу, тогда зачем было нужно больше одного?Разве класс не должен подвергаться рефакторингу для направления всех других init
методов к единственному назначенному инициализатору?
Я просто немного сбит с толку относительно того, какой вариант использования или шаблон проектирования будет вызывать несколько назначенных инициализаторов?