如何通过反射获取id数据类型的值

时间:2018-12-05 17:41:39

标签: ios objective-c reflection google-reflections

我正在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(代码= 1,地址= 0x1)

即使我尝试打印如下值:

NSLog(@“值是%@”,ccHandleTOUnSubscribe); //代码崩溃。

我已经尝试了很多方法,例如将其类型转换为整数并获取值,但是我还没有成功。谁能建议我一些东西

0 个答案:

没有答案