Objective c ASIHTTPRequest和EXC\u坏访问

Objective c ASIHTTPRequest和EXC\u坏访问,objective-c,ios,xcode,asihttprequest,exc-bad-access,Objective C,Ios,Xcode,Asihttprequest,Exc Bad Access,实际上问题就在下面的屏幕上。当请求启动时,将显示: 问题只出现在iOS 5.0及以上版本上。在iOS 4.3上,一切似乎都正常。可能是什么 UPD:Original作为一种猜测,在没有看到任何相关代码的情况下,我会说您没有调用-cleardelegates和cancel 从 通过释放您不拥有的对象,您打破了该方法中的Cocoa内存管理规则。我认为您过度释放了调用,而您只是在较旧版本的框架中获得了运气 另外,为什么在NSInvocation上使用CFRelease?我不认为它可以免费连接到任何C

实际上问题就在下面的屏幕上。当请求启动时,将显示:

问题只出现在iOS 5.0及以上版本上。在iOS 4.3上,一切似乎都正常。可能是什么


UPD:Original

作为一种猜测,在没有看到任何相关代码的情况下,我会说您没有调用-cleardelegates和cancel


通过释放您不拥有的对象,您打破了该方法中的Cocoa内存管理规则。我认为您过度释放了调用,而您只是在较旧版本的框架中获得了运气

另外,为什么在NSInvocation上使用CFRelease?我不认为它可以免费连接到任何CF对象


此外,NSInvocation不保留其参数。确保它们尚未发布。

屏幕截图中看不到任何内容,您能在崩溃的地方发布一些代码吗?是的,屏幕截图非常糟糕我不确定,但似乎请求的目标已解除分配,然后您尝试访问它。如果是这种情况,并且您希望快速解决它(但很难看),请将请求的委托属性设置为retain而不是assign.maybile rep of Ricard Pérez del Campo,这没有帮助。代码是ASIHTTPRequest的一部分(不确定asker是否更改了任何内容),但调用被释放的次数正确。(不确定CFRelease与NSInvocation的关系。)询问者几乎肯定犯了错误,将ASIHTTPRequest的委托设置为已发布的对象。@Joseph:如果这段代码是ASIHTTPRequest的一部分,那么不使用该代码是一个很好的论据。编写者不理解内存管理规则。
// Ddealloc method for our controller
- (void)dealloc
{
   [request clearDelegatesAndCancel];
   [request release];
   ...
   [super dealloc];
}