Это зависит. Вы можете сделать нечто подобное с добавлением метода во время выполнения:
#import <objc/runtime.h>
void myCustomMethod(id self, SEL _cmd, id arg1, id arg2)
{
NSLog(@"This is a test, arg1: %@, arg2: %@", arg1, arg2);
}
int main(int argc, char *argv[])
{
Class NSObjClass = [NSObject class];
class_addMethod(NSObjClass, @selector(myNewMethod::), (IMP) myCustomMethod, "v@:@@");
NSObject myObject = [NSObject new];
[myObject myNewMethod:@"Hi" :@"There"];
[myObject release];
return 0;
}
Но это все, что находится за пределами конструкции @class, и в действительности это просто скрывает то, что происходит с категорией.