我设计了一个应用程序,它将从服务器下载一些数据,并且如果没有网络问题,所有工作都正常。但是,如果在下载过程中有一些网络波动,一些数据将不会被下载,应用程序将崩溃。 在这里,我需要你们的帮助。我能否编写单独的代码来处理这种情况,并通过删除未完成的下载数据来重新下载整个数据。 预先感谢您,处理中断下载
处理中断下载
回答
当有任何网络波动或类似问题时,如果您使用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签名?
尝试张贴的一些代码里面所有的东西你正在做什么。 –