Да, это правильно, все материалы, связанные с nib, должны выполняться методом awakeFromNib. В тот момент, когда он называется, у вас уже есть инициализированный и загруженный вид из nib, поэтому вы уже можете его настроить и использовать.
Как относился к инициализаторам, пожалуйста, проверьте этот вопрос: iOS: UIView subclass init or initWithFrame:?
Назначенного инициализатором является один, что все остальными Инициализаторы должны позвонить. UIView и подклассы немного необычны в том, что у них фактически есть два таких инициализатора: -initWithFrame: и -initWithCoder :, в зависимости от того, как создается представление. Вы должны переопределить -initWithFrame: если вы создаете представление в коде и -initWithCoder: если вы загружаете его из ниба. Или вы можете поместить свой код в третий метод и переопределить оба эти инициализатора таким образом, чтобы они вызывали ваш третий метод. На самом деле, это часто рекомендуемая стратегия.
Я на самом деле не просил технических подробностей, мой вопрос был: Является ли этот подход неправильным? – Eliott
Итак, проблема в том, что вы ожидали ответа «ДА» без объяснения причин? Ok –
Однако в классах mac os x и NSView не всегда вызывается initWithFrame. Технические подробности здесь http://stackoverflow.com/questions/5374076/nsview-initialization-init-vs-awakefromnib –