在我的iOS项目中,我使用NSURLConnection下载文件。我的代码就像http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html文档一样。 在我团队的Android项目中,我们使用Android的API下载相同的文件。也没什么特别的。 iOS和Android项目都具有相同的失败重试机制,并且它们都向服务器发送相同的统计数据。 他们尝试下载的文件介于1M到10M之间。
统计服务器显示,对于相同的URL,Android上的下载失败率为2%,iOS上的下载失败率为20%!由于他们试图下载相同的URL,似乎不是服务器的问题,而更像是客户端问题。
为什么iOS下载频繁失败?是否有任何特殊的API我应该用于iOS,以使下载健壮?目前我正在使用NSURLConnection,我刚刚找到NSURLDownloader,它更方便编写文件。下载成功率会有所不同吗?
P.S。我得到的错误 -
(void) connection: (NSURLConnection *) connection didFailWithError: (NSError *) , is usually -1005, NSURLErrorNetworkConnectionLost.
答案 0 :(得分:1)
我建议您更多地了解为什么要获得NSURLErrorNetworkConnectionLost。即使您的设备说它已连接,有时也会丢失连接,并在指示器相应更新之前尝试重新获得连接。
这是有关更好地处理可达性的更多信息的良好起点。 Checking For Internet Connectivity in Objective C
否则,我建议您发布与下载相关的代码,以便其他人可以查找可能的问题。