[英]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.