ASIHttpRequest请求:didReceiveBytes:未按预期工作

时间:2011-07-02 00:26:23

标签: ios asihttprequest

我确信对此有一个非常简单的解释,但我在这件事上撕裂我的头发。

    -(void)addRequestWithUrl:(NSURL *)url savePath:(NSString *)path
    {
      ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
      request.userInfo = [[NSMutableDictionary alloc] initWithObjectsAndKeys:path, @"savePath", nil];
      networkQueue.showAccurateProgress = YES;
      [self.networkQueue addOperation:request];
      [self.networkQueue setDownloadProgressDelegate:self];
    }

    -(void)request:(ASIHTTPRequest *)request didReceiveBytes:(long long)bytes
    {
       DLog(@"bytes: %llu", bytes);
    }

didReceiveBytes永远不会被调用。如果我将下载进度委托设置为每个请求而不是队列,则调用didReceiveBytes方法,但仅在每个请求完成后,并且始终值为1.

有什么建议吗? (使用iOS btw工作)

2 个答案:

答案 0 :(得分:4)

这可能会有所帮助:

[request setDidReceiveDataSelector:@selector(request:didReceiveBytes:)]; 

答案 1 :(得分:2)

是的,我花了一段时间来计算这个,我得到了相同的结果,直到我开始研究ASIHTTPRequest代码。您所要做的就是添加:

request.showAccurateProgress = YES;
你在networkQueue.showAccurateProgress = YES之前的

;因为否则它不会读取每个文件的各个头部信息并加上字节。

相关问题