getReturnValue Crash 解决办法

问题描述:在开启ARC的项目中,使用反射如下代码时,
NSObject *value = nil;
[invocation invoke];
[invocation getReturnValue:&value];

在最后一句,调用 getReturnValue 时,程序会Crash掉,打开 Edit Schema -》Diagnostic -》Enable Zombie Objects 选中,在调试窗口会看到如下信息:-[CFString release]: message sent to deallocated instance 0x78e57c20  。如果关掉ARC,即使用MRC,则运行正常,程序不会Crash掉。

原因分析:getReturnValue  对ARC支持不够好,有bug。

解决方案:将第一句:NSObject *value=nil ;  修改为: __autoreleaseing NSObject *value=nil; 即可。 运行,一切正常。

你可能感兴趣的:(TO,message,Crash,release,sent,deal,CFString,getReturnValue)