2013-07-12 33 views
0

我在我的应用程序中使用ASIHTTP请求,我一次发射多个请求。如果任何未能获取数据,我想取消所有未决的请求。我没有使用操作队列作为即时通讯从tableview滚动表视图发送请求。如何在不影响成功完成的请求的情况下取消待处理的请求?即使您不使用NSOperationQueue或ASIHTTPOperationQueue,也可以使用 。取消多个ASIHTTPRequest的

+0

您最终必须跟踪您创建的所有请求,最好使用ASINetworkQueue,或者如果您不希望将所有请求存储到数组中并从该数组中取消。 – iphonic

回答

1

我假设您正在讨论取消异步ASIHTTPRequest

要取消异步请求,即以[request startAsynchronous]开头的请求,请致电[request cancel]

顺便说一句,通过取消请求ASIHTTPRequest将其视为错误,并会调用您的委托的失败方法。如果您不想要这种行为,请在调用取消之前将您的委托设置为零,或者改为使用clearDelegatesAndCancel方法。像这样 -

// Cancels an asynchronous request 
[request cancel] 

// Cancels an asynchronous request, clearing all delegates and blocks first 
[request clearDelegatesAndCancel]; 

但是既然你在谈论多个请求,我会建议你使用一个队列。取消请求可以使用[queue cancelAllOperations];一次完成。