连接中的无限循环:AFURLConnectionOperation.m中的didReceiveData

时间:2015-07-23 21:47:51

标签: ios afnetworking-2

我在我的iOS项目中使用AFNetworking2,需要大量的图像加载。

下载一定数量的图像后,所有传出请求都在操作队列中排队,永不熄灭。

我发现那是因为

  

AFURLConnectionOperation.m,(无效)连接:didReceiveData

有一个while(YES)循环,它只在

时中断
  

[self.outputStream hasSpaceAvailable]

或何时

  

self.outputStream.streamError

发生。

但是,在我的情况下,[self.outputStream hasSpaceAvailable]返回NO,并且操作仍然停留在while(YES)循环中。

有没有人遇到过这个问题,解决方案是什么?

这是

的代码
  

AFURLConnectionOperation.m,(无效)连接:didReceiveData

for context:

divdf=Quandl.get(partA + symbol, authtoken="W3P77LRwVFzvFfL9siB4")

注意:我目前正在使用下面的代码覆盖该功能以克服此问题。

- (void)connection:(NSURLConnection __unused *)connection
    didReceiveData:(NSData *)data
{
    NSUInteger length = [data length];
    while (YES) { 
        ...
        if ([self.outputStream hasSpaceAvailable]) {
            ...
            break;
        }
        if (self.outputStream.streamError) {
            ....
            return;
        }
    }
    ...
}

1 个答案:

答案 0 :(得分:1)

这似乎是AFNetworking中的一个错误。见here

此问题中有一个已提交的修正mentioned,但由于某种原因(2.5.4)似乎无法在最新版本中提供。