Подтвердить что ты не робот

Как узнать, какой инициализатор является назначенным инициализатором?

Как узнать, какой инициализатор является назначенным инициализатором для ЛЮБОГО класса? Я предполагаю, что это тот, который принимает большинство параметров, но могут быть моменты, когда это неверно.

4b9b3361

Ответ 1

omz ответ может быть сформулирован более твердо: в документации для класса framework указывается, который является назначенным инициализатором. Необходимо знать, что назначенный инициализатор предназначен для записи подклассов, которые ведут себя правильно. Подкласс D.I. должен обратиться к суперклассу D.I. чтобы убедиться, что он правильно инициализирован.

Однако ваша предположения о наибольшем числе параметров являются обоснованными. Apple фактически заявляет, что это часто D.I. в нескольких местах.

Cocoa Основные компетенции

Инициализатор класса, который принимает полный набор параметров инициализации, обычно является назначенным инициализатором.

Cocoa Основы

Некоторые подклассы предоставляют инициализаторы удобства, которые предоставляют значения по умолчанию для инициализатора, который в полной мере выполняет параметры инициализации. Этот инициализатор обычно является назначенным инициализатором, самым важным инициализатором класса.

Ответ 2

Вы не можете это знать, не глядя ни на исходный код (невозможно для системных фреймворков), ни на документацию (потенциально суперкласс).

Ответ 3

Из книги программирования BigNerdRanch iOS:

* Назначенный инициализатор вызывает суперклассы, обозначенные как инициализатор (прямо или косвенно), прежде чем делать что-либо еще.

* Любые другие инициализаторы называют инициализаторы классов (прямо или косвенно).

* Если класс объявляет назначенный инициализатор, отличный от его суперкласса, переопределенный суперклассом инициализатор должен быть переопределен для вызова нового назначенного инициализатора (прямо или косвенно).

Конвей, Джо; Хиллегасс, Аарон; Кер, Кристиан (2014-02-14). Программирование iOS: Путеводитель по большому ботаническому ранчо (4-е издание) (Руководство по раннему рангу Nerd) (Kindle Locations 1906-1910). Образование Пирсона. Kindle Edition.