динамическое добавление методов

Я пробую этот метод, найденный в Ссылка на время выполнения Obj-c

BOOL class_addMethod(Class cls, SEL name, IMP imp, const char *types)

Я хочу добавить новый метод, например:

- [AClass drawWithFrame:(NSRect)rect inView:(id)view]

Итак далеко я написал функцию C:

void drawWithFrameInView(id this, SEL this_cmd, NSRect frame, id view){
...
} 

теперь я готов сделать:

BOOL success = class_addMethod(NSClassFromString(@"AClass"), 
                               @selector(drawWithFrame:inView:), 
                               (IMP)drawWithFrameInView, 
                               "v@:@:@:");

но успех никогда не ДА, я пробовал тот же подход с методами с более простыми сигнатурами, и это сработало. Итак, я думаю, что проблема в последнем параметре: "v @: @: @:"

Что я должен передать в этом случае, чтобы мой новый метод заработал?

5
задан csano 25 July 2011 в 05:17
поделиться