我設計了一個應用程序,它將從服務器下載一些數據,並且如果沒有網絡問題,所有工作都正常。但是,如果在下載過程中有一些網絡波動,一些數據將不會被下載,應用程序將崩潰。 在這裏,我需要你們的幫助。我能否編寫單獨的代碼來處理這種情況,並通過刪除未完成的下載數據來重新下載整個數據。 預先感謝您,處理中斷下載
處理中斷下載
回答
當有任何網絡波動或類似問題時,如果您使用NSURLConnection或任何其他網絡API,您應該得到一個HTTP錯誤代碼。你可以用它來刪除不完整的下載數據並通知控制器代碼,以便決定是否重新下載等。
非常感謝Aditya Kumar Pandey的回覆。但我正在我的應用程序的不同類中下載不同的文件。我只想知道我是否可以在單獨的類中編寫此代碼,並處理此類中的所有下載。如果是這樣,那麼單個函數是否足夠,以及它的參數和返回類型是什麼。 –
Aditya是對的。假設如果你的連接斷開,你可以用下面的委託方法讀取響應代碼,您正在使用NSURLConnection的,
- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response {
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
int responseStatusCode = [httpResponse statusCode];
}
,你可以停止移動的連接,並刪除您未完成的下載數據進行。
更新回答該評論。
如果你在不同的類中使用不同的連接,你應該在每個類中實現它。在我看來,你應該有一個設計,就像一個特定的班級將處理所有連接相關的任務。 (可能會不符合你的要求)。但是對於你目前的設計,你應該在你所有的課程中使用它。
非常感謝你ElanthiraiyanS爲您的快速回復。但我正在我的應用程序的不同類中下載不同的文件。我只想知道我是否可以在單獨的類中編寫此代碼,並處理此類中的所有下載。如果是這樣,那麼單個函數是否足夠,以及它的參數和返回類型是什麼。 –
更新了我的答案。 – sElanthiraiyan
是的。你可以做到這一點。
有兩種情況
1.網絡不可用。
- - >要解決這個問題,你必須使用「Rechability」示例代碼(Apple提供)。開始下載之前,你必須檢查互聯網的可用性。
- 或者如果你沒有檢查互聯網的可重用性,那麼你將在NSURL連接的委託方法中得到錯誤代碼(404):
- (void)連接:(NSURLConnection *)連接didReceiveResponse:(NSURLResponse *)響應
2.網絡波動。
這裏我的意思是在下載之間如果網絡波動。然後,它會調用下面的方法
- (無效)連接:(NSURLConnection的*)連接didFailWithError:(NSError *)錯誤
您可以處理此方法
- 1. 在Tcl中處理下載中斷
- 2. 處理中斷:
- 3. 文件處理程序下載中斷+會話不見了
- 4. 如何在android下載大文件時處理中斷?
- 5. 下載邊處理
- 6. 在DOS下處理以太網中斷
- 7. 在不中斷下載處理的情況下檢查狀態碼
- 8. 中斷處理Linux和待處理中斷
- 9. 處理器如何處理中斷
- 10. 如何處理下載流
- 11. 使用Java處理下載
- 12. 下載處理器實現
- 13. w3wp處理下載文件
- 14. 在VHDL中處理中斷
- 15. 在ASP.NET中處理文件下載
- 16. 在Android中處理下載監聽器
- 17. Jenkins處理節點中斷
- 18. 在TestNG中處理斷言
- 19. Perl處理鍵盤中斷
- 20. 處理音頻中斷AVAudioPlayer
- 21. 在中斷處理程序
- 22. STM32 HAL SPI中斷處理
- 23. 異常處理不中斷
- 24. SMP如何處理中斷?
- 25. Java硬件中斷處理
- 26. KVM如何處理中斷
- 27. 如何處理中斷?
- 28. 中斷的圖片下載
- 29. 下載時的InputStream中斷
- 30. 下載中斷OSX簽名?
嘗試張貼的一些代碼裏面所有的東西你正在做什麼。 –