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