Dealloc在一个帖子中

时间:2011-10-06 19:14:50

标签: iphone ios multithreading memory memory-management

在应用程序中,您可以下载文档列表。

我使用NSURLRequest和NSURLConnection管理异步下载。 查看文档由QLPriviewController管理。

当我下载文档时,在完全下载文档之前,我推回并按下另一个文档,我收到此错误:

*** -[QLPreviewController respondsToSelector:]: message sent to deallocated instance 0x3479a0

我发现了问题,但我不知道如何解决它。

在dealloc方法中,我发布了QLPreviewController。 当我删除它正在工作时,但我猜它是一个内存泄漏。

有人能用这个脑筋急转弯来帮助我吗?

编辑:

请求和连接的初始化:

NSURLRequest *theRequest = [NSURLRequest requestWithURL:document.latestVersionURL
                                                        cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                    timeoutInterval:60.0];

            theConnection = [NSURLConnection connectionWithRequest:theRequest delegate:self];

1 个答案:

答案 0 :(得分:1)

NSURLConnection作为实例变量引用。

在您的dealloc方法中,在发布QLPreviewController之前,请致电cancel上的NSURLConnection

这将停止请求并阻止它尝试调用已解除分配的QLPreviewController上的任何方法。