2011-06-16 49 views
0

我在視圖中顯示UIImage。有時,請求的圖像不在主包或用戶文件夾中。 如果是這樣的話,我想:如何在請求結束後取消分配多個單服務ASIHTTPRequest類?

  1. 開始從遠程服務器
  2. 設置完成下載後目標的UIImageView
  3. 一個UIActivityIndi​​cator下載圖像,保存下載的圖像的文件夾
  4. 負載的UIImage在的UIImageView和停止UIActivityIndi​​cator

處理案件其中用戶改變視圖,而在下載未完成是硬。我確實希望下載繼續直到結束。另一方面,他可以用另一種觀點來開展並行下載。

我創建了一個下載管理器有一個靜態方法+的getImage:(的NSString *)網址targetUIImageView:(UIImageView的*)targetUIV 我想這個方法來實例化每個它自己的ASIHTTPRequest新ImageDLClass,它自己的目標(分配)UImageView 。測試這個目標== nil是否允許知道視圖是否被釋放。

我不明白的是,誰會保留所有的ImageDLClass實例,我怎麼才能在下載完成後釋放它們。

我在尋找建築理念,我已經知道如何編碼每個點。你有建築理念嗎?

感謝您的幫助!

kheraud

回答

0

我終於使用了一個更好的東西。

這裏的magick關鍵詞是「userInfo」。事實上,您可以將任何內容與請求鏈接起來,並在委託方法中檢索這個「任何東西」。

我的體系結構如下:

  • 一個Singleton的ImageManager
  • 的ImageManager有一個屬性:含有尚未完成該請求的陣列
  • 的ImageManager具有啓動一個ASIHTTPRequest並添加此請求的方法到它的數組
  • 在每個請求的userInfo中有一個指向目標的指針UIImageView
  • UIActivityIndi​​catorView被創建(使用55 5標籤號),並已經開始異步請求
  • UIActivityIndi​​catorView使用它的標籤數

陣列屬性允許取消和釋放如果的ImageManager所有非成品請求移除之後加入作爲子視圖到目標的UIImageView被釋放。

希望它能幫助!

kheraud

相關問題