我确信对此有一个非常简单的解释,但我在这件事上撕裂我的头发。
-(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工作)
答案 0 :(得分:4)
这可能会有所帮助:
[request setDidReceiveDataSelector:@selector(request:didReceiveBytes:)];
答案 1 :(得分:2)
是的,我花了一段时间来计算这个,我得到了相同的结果,直到我开始研究ASIHTTPRequest代码。您所要做的就是添加:
request.showAccurateProgress = YES;
你在networkQueue.showAccurateProgress = YES之前的;因为否则它不会读取每个文件的各个头部信息并加上字节。