NSURLSession任务取消问题(CFNetwork内部错误)

时间:2015-03-02 01:34:26

标签: ios objective-c nsurlsession cfnetwork

我在日志中收到错误消息:

  

CFNetwork内部错误0xc01a:/SourceCache/CFNetwork/CFNetwork-711.1.16/Connection/URLConnectionLoader.cpp:1321)

问题在于处理极端压力下NSURLSessionDataTask对象的取消(任务被创建和取消非常快)。未取消任务时不会发生错误。当任务被延迟取消时也不会发生这种情况:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
   [_task cancel];
});

很久以前,Apple已停止提供CFNetwork来源。怎么有人去调试这种错误?

2 个答案:

答案 0 :(得分:1)

您可以将代码放在此处异常。还要使用NSError类来查找网络任务期间发生的错误。

答案 1 :(得分:0)

这个问题有一个简单的解决方案 - 您应该对请求进行速率限制。 https://en.wikipedia.org/wiki/Token_bucket URLSession并非设计为可以像这样使用。