【问题标题】:Cancelling one (or several) certain ASIHTTPRequests in an ASINetworkQueue取消 ASINetworkQueue 中的一个(或多个)特定 ASIHTTPRequest
【发布时间】:2011-01-30 11:40:48
【问题描述】:

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

目前 APIManager 只包含一个 ASINetworkQueue,APIRequests(ASIHTTPRequest 的子类)被添加和执行。在每个 APIRequest 的 userInfo 中,添加了一些额外的信息来处理请求(比如是否应该将响应解析为 Core Data - 如果是,哪个实体 - 或不)。

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

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

提前致谢!

【问题讨论】:

    标签: iphone ipad asihttprequest nsoperation nsoperationqueue


    【解决方案1】:

    [queue operations] 将返回队列中项目的 NSArray,然后您可以对其进行迭代并在任何您喜欢的地方调用“取消”。

    类似:

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

    【讨论】:

    • 正是我想要的!我今天晚些时候试试,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多