2011-05-12 42 views
1

當單擊tableViewCells上的按鈕時,我需要下載一些文件。跟蹤ASINetworkQueue中的各個請求進度

我正在考慮將它們添加到ASINetworkQueue,以便下載可以發生。 但是,當我開始跟蹤進度時,在我看來,他們說我只能爲整個隊列取得一個進展。

這是真的,還是有一種方法可以單獨跟蹤每個請求的進度? 我需要有一個自定義的tableview,顯示每個文件已被下載了多少。

此外,在一個不那麼相關的說明,我可以設置

[request setShouldContinueWhenAppEntersBackground:YES]; 

的內部網絡請求排隊? 我需要支持後臺下載,如果networkqueue不支持它,我不妨現在就去查看這個想法並尋找其他方法。

回答

1

documentation提到:

每個ASIHTTPRequest有兩個代表 可用於跟蹤進度 - downloadProgressDelegate(用於下載)和uploadProgressDelegate (上載)。

即使請求是隊列的一部分,您仍然可以在請求上使用這些委託。

網絡隊列只是由來自請求本身的事件驅動的(並且即使它們在後臺運行,請求仍然是隊列的一部分)。我相信,如果您將請求標記爲在後臺繼續,那麼隊列事件也將繼續。

+0

謝謝! 但是,當我使用downloadProgressDelegate並將其分配給UIProgressVIew控件時,我只能得到像百分比完成。 我如何獲得3mb/21mb完成的信息? – mvishnu 2011-05-12 10:04:24

+0

downloadProgressDelegate獲取需要顯示的信息3mb/21mb - 您需要創建一個自定義視圖來準確顯示您想要的內容;如果你不確定如何嘗試作爲一個新問題。 – JosephH 2011-05-12 10:32:13

+0

謝謝。經過一番探索,我找到了它的工作。我需要的是 [請求setDidRecieveDataSelector:....] 在此,我使用了request.totalBytesRead和request.contentLength。 我不得不將它們投到浮標上才能使分隔正常工作,但最終還是奏效了。 :) – mvishnu 2011-05-12 11:54:08