Указатель на функцию Objective-c - PullRequest
2 голосов
/ 27 апреля 2011

Мне нужно сделать что-то вроде этого:

id myFunction = aMethodDeclaredInMyClass;

[self myFunction]

любая помощь приветствуется!

Ответы [ 3 ]

5 голосов
/ 27 апреля 2011

Если вы знаете метод заранее:

[self performSelector:@selector(myMethod) withObject:nil];

Если вы не знаете имя метода заранее:

SEL selector = NSSelectorFromString(someSelectorStringYoureGiven);
[self performSelector:selector withObject:nil];

В обоих этих примерах предполагается, что ваша функция не принимает аргументов, ни требует выполнения в другом потоке, ни требует отложенного выполнения.Есть много вариантов для всех комбинаций этих условий (и NSInvocation для еще более сложных случаев).Ищите performSelector в документации xcode, чтобы увидеть все варианты.

0 голосов
/ 27 апреля 2011

Также см. objc_msgSend(). Вы бы установили селекторную переменную SEL.

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