Как я могу запустить метод программно, это описано селектором? - PullRequest
3 голосов
/ 29 мая 2009

Пример: у меня есть такой селектор, который я даю другому методу в качестве параметра:

SEL mySelector = @selector(doSomething:);

Я бы хотел вызвать этот метод doSomething прямо сейчас внутри этого метода.

Фон: у меня есть метод, который выполняет некоторые основные анимационные действия. Он уже использует didStopSelector, который вызывает специальный метод управления памятью, когда все сделано. Но затем я хочу иметь возможность вызывать простой метод, который не требует специальных параметров, чтобы потом что-то делать. Но этот метод не должен отвечать за вызов метода управления памятью, поэтому мне нужно запустить селектор, который я храню, например, в ivar.

Ответы [ 2 ]

8 голосов
/ 29 мая 2009
[receivingObject performSelector:mySelector withObject:someParam];

Существует версия без withObject, если ваш селектор не принимает никаких параметров. См. документы для NSObject.

2 голосов
/ 29 мая 2009

Вы можете вызвать NSObject performSelector методы:

- (id)performSelector:(SEL)aSelector withObject:(id)object;
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...