iPhone - Как мне написать метод инициализации? - PullRequest
2 голосов
/ 15 октября 2010

Как мне написать метод init для класса, который подклассирует NSObject

  • Допустим, у меня есть класс с именем: Подкласс UButton CustomButton
  • У меня есть пустой файл пера с именем CustomButton.nib, который имеет один UIB кнопка в нем.
  • В конструкторе интерфейса имя класса для кнопки установлено на «CustomButton»

Как бы вы написали метод init для этого класса, чтобы он загружался из файла nib?

1 Ответ

7 голосов
/ 15 октября 2010

Если вам нужна пользовательская инициализация внутри CustomButton, используйте это:

- (id)initWithCoder:(NSCoder *)decoder {
    if (self = [super initWithCoder:decoder]) {
        /* do initialization here */
    }
return self;
}

Это не будет вызываться, если вы создаете экземпляр кнопки непосредственно в коде, только при создании экземпляра в загрузчике пера.Использование кода означает, что вам нужно использовать initWithFrame, поэтому переопределите его.На самом деле вы можете захотеть, чтобы initWithCoder и initWithFrame вызывали один и тот же метод initAlways или что-то в этом роде.

Кроме того, важно знать концепцию Objective-C "назначенного инициализатора" (ищите его в целевых документах C)может немного сбивать с толку людей, привыкших к другим языкам OO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...