Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用NSOperationQueue和ASIHTTPRequest获取每次下载的多个下载进度更新_Iphone_Objective C_Ipad_Asihttprequest_Nsoperationqueue - Fatal编程技术网

Iphone 使用NSOperationQueue和ASIHTTPRequest获取每次下载的多个下载进度更新

Iphone 使用NSOperationQueue和ASIHTTPRequest获取每次下载的多个下载进度更新,iphone,objective-c,ipad,asihttprequest,nsoperationqueue,Iphone,Objective C,Ipad,Asihttprequest,Nsoperationqueue,iam用于下载多个文件,使用旁路ASIHTTPRequest到操作队列 NSInvocationOperation *operation =[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(DownloadFile:) object:url]; . . . -(void)DownloadFile:(NSURL)url{ ASIHTTPRequest *request = [ASIHTTP

iam用于下载多个文件,使用旁路ASIHTTPRequest到操作队列

    NSInvocationOperation *operation =[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(DownloadFile:) object:url];
.
.
.

-(void)DownloadFile:(NSURL)url{
      ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
        [request setDownloadProgressDelegate:self];
        [request setDidFailSelector:@selector(requestWentWrong:)];
        [request setDidFinishSelector:@selector(requestFinished:)];
        [request setDelegate:self];
        [request startSynchronous];
}

- (void)setProgress:(float)progress{    
    NSLog(@"Current progress %f :",progress);

}
进度正常,但我不知道是哪个URL还是哪个操作。。 我想知道如何获得每个网址的每个下载进度分别。。。 以及我如何取消每个操作,而不是取消所有操作。
谢谢

首先回答您的问题:为每次下载创建一个“委托”对象怎么样?很明显,每次下载和取消下载的过程都很简单。不过,代码将更加复杂


因此,我有另一个建议:使用,因此您可以切换到其他内容。例如,他提出了一些建议,但现在很多人都推荐。它似乎具有很好的队列处理能力。

注意代理消息的签名:每个消息都有一个参数。该参数是向您发送消息的请求:该请求在向您发送委托消息时,将自身包含在参数中,以便您知道哪一个请求已达到此程度。

感谢您的重播,但您能否向我发送有关MKNetworkKit的更多信息?我如何使用与此解决方案相关的任何文档…@MinaNabil:请求将自身作为参数之一发送到每个代理消息,因此,当您收到一条来自请求的消息,告诉您该请求的进度时,您已经知道该消息是关于哪个请求的。但是Setprogress中没有ASIHTTPRequest*请求参数send,因此我可以捕获请求的详细信息…@MinaNabil:
Setprogress:
是委托协议的方便方法,对于简单的情况(因此您可以将UIProgressIndicator设置为委托)。假设你不能这样做,你的情况会稍微复杂一些,因为你有多个请求,所以你需要使用更高级的方法,在参数中包含一个请求。那么你能给我一个解决方案吗。。请我需要弄清楚我需要这个解决方案@MinaNabil:解决方案是实现其他委托方法,而不是
setProgress: