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

Должен ли я называть [super awakeFromNib]?

Если я реализую свою собственную версию awakeFromNib, следует ли мне позвонить [super awakeFromNib] в конце моего метода?

4b9b3361

Ответ 1

awakeFromNib для UIKit (iOS):

Вы должны вызвать супер-реализацию awakeFromNib, чтобы предоставить родительским классам возможность выполнить любую требуемую дополнительную инициализацию. Хотя реализация этого метода по умолчанию не делает ничего, многие классы UIKit предоставляют непустые реализации. Вы можете назвать супер-реализацию в любой момент во время своего собственного метода awakeFromNib.

awakeFromNib для AppKit (Mac):

(не вернее, если использовать OS X 10.6 или выше)

Вы должны назвать супер-реализацию awakeFromNib, только если вы точно знаете, что ваш суперкласс обеспечивает реализацию. Поскольку Application Kit не предоставляет стандартную реализацию метода awakeFromNib, вызов супер приводит к исключению, если родительский класс не реализует его. Классы, чей непосредственный родительский класс NSObject или NSView не требуют вызова супер-реализации. Для любых других классов вы можете использовать метод экземпляров классаRespondToSelector: class NSObject, чтобы определить, отвечает ли родительский класс awakeFromNib и вызывает метод, если он это делает.

Ответ 2

Документация прекрасно описывает это.

Если вы хотели спросить о Cocoa Touch, вам не повезло: документация UIKit не отвечает на вопрос окончательно где бы я ни находилась. Лучшее, что я могу предложить, - это следовать тем же правилам, что и в Cocoa.