2

我想知道你们中是否有人使用 AFNetworking 框架限制了下载速度。我的应用程序使用 AFN 来下载大文件,我还想引入限速功能。

我最好的猜测是休眠 AFURLConnectionOperation 方法中的操作connection:(NSURLConnection *) connection didReceiveData:(NSData *)data?如果这是正确的方法,如何最好地实施它以避免任何超时等。有什么想法吗?

谢谢!

4

2 回答 2

1

您可以使用两种不同的技术来限制您的网络:

  • 使用 Apple 的“网络链接调节器”

    • 如果您在支持开发人员的设备上进行测试:转到“设置”>“开发人员”>“网络链接调节器”,切换到启用并选择配置文件
    • 如果您正在使用 Mac 自己的网络连接的 Simulator 上进行测试,您可以下载 OSX 的“Network Link Conditioner”prefpane(请参阅Mattt 在 NSHipster 上的文章
  • 或者使用OHHTTPStubswhich 既可以使用一些虚假数据来存根您的请求(对于测试非常有用,包括生成一些在现实生活中不容易重现的错误案例),但也会在响应中引入延迟虚假网络延迟和慢速网络。(你可以在谷歌上搜索使用 AFNetworking 的例子,有很多关于它的文章)

于 2014-08-10T13:47:43.763 回答
1

我尝试过使用这种方法,但前景不大。

如果您在connection:didReceiveData:NSURLConnection 中使用 sleep 等,它会接收数据并填充其缓冲区(全速网络的最大延迟约为 1MB),然后调用connection:didReceiveData:. 有了这个,你会给出净使用量的峰值。我不认为这是你想要的。

于 2013-10-19T03:30:37.403 回答