Подкласс NSObject как цель в инструкции addEventListener - PullRequest
1 голос
/ 28 июля 2010

Когда вы устанавливаете метод вызова кнопки или добавляете прослушиватель событий в target-c, обычно для цели устанавливается значение self. Однако у меня есть подкласс NSObject с именем CALLS, отдельный от основного файла. Этот подкласс имеет void, называемый METHOD_NAME, который должен быть выполнен.

Первый вопрос: будет ли пустота + (Пустоты) METHOD_NAME

или

- (недействительными) METHOD_NAME в подклассе.

Далее следует, как мне установить цель addEventListener для использования подкласса NSObject и вызвать метод внутри него. Буду ли я делать

цель: [CALLS class];

или создать экземпляр подкласса NSObject (звонки) и затем передать это?

1 Ответ

2 голосов
/ 28 июля 2010
  • "CALLS" и "METHOD_NAME" не являются хорошими именами для класса и метода.Попытайтесь следовать соглашениям Objective C.Поскольку вы «неоно», вы можете назвать свой класс, например, NNEventListener и метод buttonTapped.

  • Первый вопрос: на самом деле это не имеет значения.Методы класса (+) и методы экземпляра могут быть использованы оба. Однако , было бы очень необычно не использовать метод экземпляра для прослушивания событий пользовательского интерфейса, поэтому ответ таков: -(void)buttonTapped

  • Второй вопрос: я не думаю, что во всем Какао есть метод, называемый addEventListener.Откуда вы узнали об этом?Вы раньше использовали веб-фреймворки для создания приложений?

Чтобы добавить target к кнопке (или любой другой UIControl), вы используете -addTarget:action:forControlEvents:Чтобы получить ссылку на метод, который вы хотите вызвать, вы используете специальную директиву @selector, например:

[aButton addTarget:anObject action:@selector(buttonTapped) forControlEvents:UIControlEventTouchUpInside];

aButton - ваша кнопка anObject - любой объект.self это просто объект, которому принадлежит метод.Вы можете передать любой объект вообще buttonTapped - имя метода, который должен вызываться при нажатии кнопки

...