1

在我的 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下载会如此频繁地失败?我应该为 iOS 使用任何特殊的 API,以使下载变得健壮吗?目前我正在使用NSURLConnection,我刚刚发现NSURLDownloader 写文件更方便。它们的下载成功率会有所不同吗?

PS我得到的错误 -
(void) connection: (NSURLConnection *) connection didFailWithError: (NSError *) , is usually -1005, NSURLErrorNetworkConnectionLost.

4

1 回答 1

1

我建议您更多地了解为什么您会收到 NSURLErrorNetworkConnectionLost。即使您的设备显示已连接,有时它也可能会丢失连接并在指标相应更新之前尝试重新连接。

这是更好地处理可达性的更多信息的一个很好的起点。在 Objective C 中检查 Internet 连接

否则,我建议您发布与下载相关的代码,以便其他人可以查找可能的问题。

于 2012-12-24T04:02:15.827 回答