我有一个发送多个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
答案 0 :(得分:4)
最佳解决方案取决于您的架构和应用程序需求 - 例如。您是否只有多个http请求可能要取消?
这是一个解决方案 - 它将取消并删除已分配到默认队列的进度请求中所有的代理:
for (ASIHTTPRequest *req in ASIHTTPRequest.sharedQueue.operations)
{
[req cancel];
[req setDelegate:nil];
}
[queue setDelegate:nil];