我敢肯定对此有一个非常简单的解释,但是我正在解决这个问题。
-(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上工作)
最佳答案
是的,花了我一段时间才弄清楚这一点,直到开始研究ASIHTTPRequest代码之前,我得到了相同的结果。您要做的就是添加:
request.showAccurateProgress = YES;
在您执行networkQueue.showAccurateProgress = YES之前;因为否则它不会读取每个文件的单独头部信息,也不会将字节加起来。
关于ios - ASIHttpRequest请求:didReceiveBytes:不能按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6554347/