获取使用NSOperationQueue和ASIHTTPRequest

问题描述:

使用IAM利用传递ASIHTTPRequest操作队列下载多个文件每个下载的多个下载进度更新...获取使用NSOperationQueue和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或从哪个操作.. 我想知道如何获取每个url的每个下载进度... 以及我如何取消每个不取消所有操作。 谢谢

首先你的问题的答案:你如何创建一个“代表”对象为每个下载?那么很显然下载和取消的下载过程很容易。但是代码会更复杂。

因此,我还有另一个建议:author of ASIHTTPRequest library has stopped developing the library,所以你可能切换到别的东西。他的建议,例如AFNetworking,但很多人现在推荐MKNetworkKit。它似乎有相当不错的队列处理。

+0

感谢您的重播,但您能否向我发送有关MKNetworkKit的更多信息我如何使用有关此解决方案的任何文档... –

+0

http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/ – JOM

请注意委托消息的签名:每个人都有一个参数。这个参数是向你发送消息的请求:当请求发送给你一个委托消息时,它将自己包含在参数中,以便你知道哪一个请求已经得到了那么多。

+0

你能澄清更多请我不能让你对不起? –

+0

@MinaNabil:请求将自己作为每个委托消息的参数之一发送,因此,当您收到来自请求的消息,告诉您请求的进度时,您就已经知道消息是关于哪个请求。 –

+0

但在Setprogress中没有ASIHTTPRequest *请求参数发送,所以我可以捕获请求详细信息... –