Iphone 取消ASINetworkQueue中的一个(或多个)特定AsiHttpRequest

Iphone 取消ASINetworkQueue中的一个(或多个)特定AsiHttpRequest,iphone,ipad,asihttprequest,nsoperation,nsoperationqueue,Iphone,Ipad,Asihttprequest,Nsoperation,Nsoperationqueue,在我的iPhone/iPad应用程序中,我通过一个“APIManager”(singleton,在AppDelegate中创建)处理所有网络和web API请求 目前,APIManager只包含一个ASINetworkQueue,其中添加并执行了APIRequests(ASIHTTPRequest的子类)。在每个APIRequest的userInfo中添加了一些处理请求的附加信息(比如是否应该将响应解析为核心数据,如果应该,是哪个实体,或者不应该) 当用户从一个视图(ViewA)移动到另一个视图

在我的iPhone/iPad应用程序中,我通过一个“APIManager”(singleton,在AppDelegate中创建)处理所有网络和web API请求

目前,APIManager只包含一个ASINetworkQueue,其中添加并执行了APIRequests(ASIHTTPRequest的子类)。在每个APIRequest的userInfo中添加了一些处理请求的附加信息(比如是否应该将响应解析为核心数据,如果应该,是哪个实体,或者不应该)

当用户从一个视图(ViewA)移动到另一个视图(ViewX)时,我希望能够取消ViewA要求APIManager执行的所有请求,同时让其他视图继续

是否有一些功能可以在ASINetworkQueue(或NSOperationQueue)中查找特定请求并向其发送取消消息?可能使用添加到请求的userInfo的参数


提前谢谢

[queue operations]
将返回队列中的一组项目,然后您可以对这些项目进行迭代,并根据需要调用“cancel”

比如:

for (ASIHTTPRequest *req in [queue operations])
{
    if (shouldCancel(req))
        [req cancel];
}

这正是我要找的!今天晚些时候我会试试的,谢谢!