Как я могу вызвать метод, который я сохранил, используя class_getInstanceMethod из Objective C? - PullRequest
3 голосов
/ 20 июня 2011

Как я могу вызвать метод, который я ранее сохранил, используя код ниже:

SEL sel = @selector(someMethod:param:);
Method myMethod = class_getInstanceMethod([SomeClass class], sel);

Как вы можете себе представить, вызов [SomeClass someMethod] не будет работать, потому что позже я закрою оригинальный метод.

1 Ответ

2 голосов
/ 20 июня 2011

Вам необходимо типизировать указатель на правильный тип функции, помня, что у методов есть два неявных аргумента, self и _cmd.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Только * просто *}.время выполнения, оно непрозрачно, поэтому у вас нет прямого доступа к его членам - вам нужно будет использовать method_getImplementation(myMethod), чтобы получить IMP, который вы можете ввести, как указано выше.

...