EXC_BAD_ACCESS - NSURLConnection

时间:2013-07-21 13:28:19

标签: objective-c nsurlconnection

我有一个使用NSURLConnection来触发POST请求的类。

我有其他类在此类上使用委托,它用于在收到响应时触发事件。

当我解析响应时,我会像这样调用委托:

- (void)connectionDidFinishLoading:(NSURLConnection*)conn { ...
            if (delegate)
            {
                [delegate serverDataLayerResponse:entity];
            } ... }

我在if块内的行上得到“EXC_BAD_ACCESS(code = 1,address -...”。

我甚至尝试过@try和@catch,但它仍然会杀死我的应用程序。

我怀疑代理仍然指向已释放的内存中的对象?我怎么能防范这个?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你的指针很糟糕。 delegate非零,因此测试通过,但不指向有效对象。您可以在委托的-dealloc中放置一个断点来检测对象是否已被释放。另外,尝试打破分配委托的位置,然后起诉你当时有一个有效的对象。