2011-09-07 146 views
0

我有一个ImageDownloader类与NSURLConnection *连接作为伊娃初始化它设置其委托为自我。 现在的疑问是当我在AsyncImageView中启动一个ImageDownloader实例,以便我的图像下载开始时,它有一个保留计数= 2 {1与图像下载器初始化和2与nsurl初始化设置代理自身}。所以当我从asyncImageView发布图片下载时,它仍然有一个保留计数= 1。内存泄漏时使用NSURLConnection实例

如何释放imageDownloader实例,因为可能存在泄漏? 如果我在imageDownloader中释放连接ivar,则保留计数应为0,但应用程序崩溃(出于obv。的原因)。

+3

发表了一些代码。 – mayuur

+0

发布调试器崩溃函数调用跟踪和您的代码。 – SayeedHussain

回答

0

是的,NSURLConnection实例保留其委托。所以你应该在发布ImageDownloader实例之前调用[连接取消]来释放它。

+0

纠正我,如果我错了,我猜连接释放委托一旦它已经加载数据(即所谓的委托方法)。我们是否明确需要取消连接? – Satyavrat

+1

是的你是对的,你应该取消连接,只有当它尚未完成。它在NSURLConnection类的引用中进行了描述:“连接保留委托,它在连接加载完成,失败或取消时释放委托。” – Vladimir