Я создал новую функцию для регистрации каждого метода из класса во время выполнения.
Проблема, которая у меня есть, в этой строке:
id value = va_arg(stackFrame, id);
Не преобразует тип объекта в аргументах.
Есть идеи, что я делаю не так? Есть ли другой способ сделать это?
void DebugArguments ( id self, SEL _cmd,...)
{
id receiver = self;
SEL receiverSelector = _cmd;
va_list stackFrame;
va_start(stackFrame, _cmd);
NSMethodSignature *signature
= [receiver methodSignatureForSelector:receiverSelector];
NSUInteger count = [signature numberOfArguments];
NSUInteger index = 2;
for (; index < count; index++)
{
id value = va_arg(stackFrame, id);
if (!value)
{
NSLog(@"Arguments: %@",value);
}
}
va_end(stackFrame);
}