Согласно документации, назначенный инициализатор класса в Objective-C должен вызывать назначенный инициализатор своего базового класса.
Другое правило состоит в том, что вторичные инициализаторы должны вызывать назначенный инициализатор своего собственного класса.
Но если соблюдается второе правило, почему назначенный инициализатор не может вызвать вторичный инициализатор в своем базовом классе? Этот базовый вторичный инициализатор в конечном итоге вызовет DI своего собственного уровня, поэтому объект все равно будет правильно инициализирован, верно?
Разница, по-видимому, заключается в том, кто выбирает значения по умолчанию для отсутствующих переменных — вы или ваш базовый класс.