Должен ли я использовать executeSelector: когда я также могу нормально вызывать метод? - PullRequest
2 голосов
/ 24 апреля 2010

Я хочу вызвать метод для объекта, который я получаю через [self delegate]. Я знаю, какой это класс, чтобы я мог импортировать класс и вызывать его как обычно, но я также мог бы использовать performSelector:, который не требует импорта моего класса. Мне не нужно передавать параметр в метод. И да, я прочитал это . Какой из них предпочтителен в этом случае?

Ответы [ 2 ]

2 голосов
/ 24 апреля 2010

Вызов метода напрямую более читабелен. performSelector: должно быть зарезервировано для сообщений более высокого порядка.

Строго говоря, вам не нужно импортировать класс для отправки ему сообщения, поскольку отправка сообщений является динамической, а не статической, хотя вы получите предупреждения во время компиляции о том, что объект может не отвечать на селектор.

0 голосов
/ 24 апреля 2010

Вообще говоря, отражающие операции, такие как performSelector:, менее эффективны, чем прямые. Я должен признать, что я не очень хорошо знаком с objC.

...