【发布时间】:2012-12-24 03:42:57
【问题描述】:
在我的 iOS 项目中,我使用 NSURLConnection 下载文件。我的代码就像http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html 文档一样。 在我团队的 Android 项目中,我们使用 Android 的 API 下载相同的文件。也没什么特别的。 iOS 和 Android 项目都有相同的失败重试机制,它们都向服务器发送相同的统计数据。 他们尝试下载的文件在 1M 到 10M 之间。
统计服务器显示,对于相同的URL,在安卓上下载失败率为2%,而在iOS上为20%!由于他们试图下载相同的 URL,这似乎不是服务器的问题,而更像是客户端的问题。
为什么 iOS 下载会如此频繁地失败?我应该为 iOS 使用任何特殊的 API,以使下载变得健壮吗?目前我正在使用NSURLConnection,我刚刚发现NSURLDownloader 写文件更方便。它们的下载成功率会有所不同吗?
附:我得到的错误 -
(void) connection: (NSURLConnection *) connection didFailWithError: (NSError *) , is usually -1005, NSURLErrorNetworkConnectionLost.
【问题讨论】:
-
你的代码不会有问题吧?
-
您确定这是 20% 的实际失败,而不是 20% 的用户中止吗?
-
我们已经仔细检查了几次代码,我很确定没有什么特别之处。
-
内存泄漏或内存不足怎么办?我们没有关于您如何处理下载的信息。
-
隐含在所有这些问题中,这样的失败率是不寻常的。尽管你保证,代码可能是罪魁祸首。您可能应该分享您的下载代码。