2011-09-07 93 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