как получить значение типа данных через отражения - PullRequest
0 голосов
/ 05 декабря 2018

Я использую отражения в своем проекте для 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);// здесь происходит сбой кода.

Я уже пробовал многие вещи, например, приведение его к целому числу и получение значения, однако я пока не добился успеха.Может ли кто-нибудь предложить мне что-то

...