Я использую отражения в своем проекте для Firebase, и я столкнулся с трудностью в значении доступа типа данных id .Рассмотрим следующий фрагмент кода:
SEL SelobserveEventType=NSSelectorFromString(@"observeEventType:withBlock:");
FIRDataEventType typeFIR=FIRDataEventTypeValue ;
NSMethodSignature *observemethodSignature = [ref methodSignatureForSelector:SelobserveEventType];
NSInvocation* observeinvocation = [NSInvocation invocationWithMethodSignature:observemethodSignature];
int myNewwInt;
[observeinvocation setSelector:SelobserveEventType];
[observeinvocation setTarget:ref];
[observeinvocation setArgument:&typeFIR atIndex:2];
[observeinvocation setArgument:&ObserveBlockMessages atIndex:3];
[observeinvocation invoke];
[observeinvocation getReturnValue:&ccHandleTOUnSubscribe];
Таким образом, возвращаемое значение ref сохраняется по адресу ccHandleTOUnSubscribe .Теперь я не могу получить доступ к значению ccHandleTOUnSubscribe .Всякий раз, когда я пытаюсь получить доступ к значению, я сталкиваюсь со сбоем с приведенным ниже журналом ошибок:
EXC_BAD_ACCESS (code = 1, address = 0x1)
Даже я пытаюсьвыведите значение следующим образом:
NSLog (@ "значение% @", ccHandleTOUnSubscribe);// здесь происходит сбой кода.
Я уже пробовал многие вещи, например, приведение его к целому числу и получение значения, однако я пока не добился успеха.Может ли кто-нибудь предложить мне что-то