簡體   English   中英

如何使用NSUrlConnection的多個實例避免數據損壞

[英]How can I avoid data corruption with multiple instances of NSUrlConnection

我編寫了一個iOS應用程序,該應用程序多次調用NSUrlConnection來從Web下載圖像數據。 有時,一個NSUrlConnection在另一個啟動之前尚未完成。 我看到損壞的jpeg數據,這是因為我的didReceiveData委托正在從兩個單獨的NSUrlConnections中保存數據,並將兩個jpeg數據流合並為一個數據變量,從而導致損壞。

我的問題是:避免這種情況的最佳方法是什么? 似乎沒有一種方法可以使每個NSUrlConnection實例保存到單獨的數據變量,或者使每個實例等到前一個實例完成后再保存。

除了我多次調用loadData函數創建了NSURLRequest和NSURLConnection之外,我的代碼基本上遵循Apple的示例。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

在此先感謝您的幫助。

調用委托的connection:didReceiveData:方法時,會將連接實例作為第一個參數。 因此,您需要使用它來跟蹤剛剛接收到數據的連接。

蘋果的示例維護了一個NSMutableData實例。 您的代碼將需要多個實例,每個活動連接一個。

或者,當然,每個連接可以有一個單獨的委托對象(一個單獨的實例)。 那可能更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM