ASIHTTPRequest - 取消多个请求的最佳做法?

时间:2011-09-06 19:53:35

标签: ios asihttprequest

我有一个发送多个ASIHTTPRequests的for循环:

for (int i = 0; i < 10; i++) {
     ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
     [request setDelegate:self]; 
     [request setDidFinishSelector:@selector(requestDone:)];
     [request setDidFailSelector:@selector(requestWentWrong:)];
}

为了在请求完成之前安全地处理被释放的委托,我想取消这些请求;我怎么能实现这一目标?将所有请求存储在NSMutableArray中?或者我可以使用队列实现这一目标吗?非常感谢你的帮助!

的Stefan

1 个答案:

答案 0 :(得分:4)

最佳解决方案取决于您的架构和应用程序需求 - 例如。您是否只有多个http请求可能要取消?

这是一个解决方案 - 它将取消并删除已分配到默认队列的进度请求中所有的代理:

for (ASIHTTPRequest *req in ASIHTTPRequest.sharedQueue.operations)
{
    [req cancel];
    [req setDelegate:nil];
}
[queue setDelegate:nil];