我正在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); //代码崩溃。
我已经尝试了很多方法,例如将其类型转换为整数并获取值,但是我还没有成功。谁能建议我一些东西