我有一个使用NSURLConnection来触发POST请求的类。
我有其他类在此类上使用委托,它用于在收到响应时触发事件。
当我解析响应时,我会像这样调用委托:
- (void)connectionDidFinishLoading:(NSURLConnection*)conn { ...
if (delegate)
{
[delegate serverDataLayerResponse:entity];
} ... }
我在if块内的行上得到“EXC_BAD_ACCESS(code = 1,address -...”。
我甚至尝试过@try和@catch,但它仍然会杀死我的应用程序。
我怀疑代理仍然指向已释放的内存中的对象?我怎么能防范这个?
感谢您的帮助。
答案 0 :(得分:1)
你的指针很糟糕。 delegate
非零,因此测试通过,但不指向有效对象。您可以在委托的-dealloc
中放置一个断点来检测对象是否已被释放。另外,尝试打破分配委托的位置,然后起诉你当时有一个有效的对象。