【问题标题】:iOS/Objective-C Multiple URL ConnectionsiOS/Objective-C 多 URL 连接
【发布时间】:2010-10-11 20:23:03
【问题描述】:

我有一些应用程序正在尝试开发可重用的 URL 连接层。我做了一些研究,在架构之间挣扎。特别是该层使用的 API。

过去,我在单独的 RunLoop 上使用过 NSURLConnectionNSOperation。这似乎有点矫枉过正。我见过子类NSURLConnection 的库。其他人有一个管理所有请求的单例 Engine 对象。

Engine 和/或NSURLConnection 对我来说似乎是最好的。但在我走得太远之前,我要求提供意见。我的目标是:

  • 能够取消请求
  • 并发请求
  • 非阻塞
  • 当前打开请求的数据对象

非常感谢任何方向或现有的代码示例参考。

【问题讨论】:

    标签: iphone nsurlconnection


    【解决方案1】:

    我不确定“当前打开请求的数据对象”,但ASIHTTPRequest 做了前三个并且非常易于使用。


    更新

    实际上,ASINetworkQueue 似乎可以满足您的最后一个要点。

    【讨论】:

    • +1 供参考。我将来会在更大的项目中使用它。但是,我认为构建我自己的NSURLConnection 子类和 ConnectionEngine 类的学习机会对于这个小应用程序将很有价值。
    【解决方案2】:

    我个人在我的大型应用程序中使用单例引擎,尽管它可能并不总是最好的情况。我使用的所有 URL 都需要先登录,我认为最好由一个类处理所有请求以防止多个 URL 登录到一个位置。

    我基本上为我的单例中的所有不同连接类创建了一个协议,并将调用类和单例的委托传递给它。如果发生错误,则将其传递给单例以便处理它,如果完成,则将数据返回给调用类。

    【讨论】:

    • 这似乎与我见过的一些 Twitter 库(例如 MGTwitterEngine)的方法相同。这就是我目前设置架构的方式。所以你让 Engine 句柄管理 NSURLConnection 和调用类一个 Engine 的委托?
    • 嗯,可能在翻译中丢失了,但我将调用类作为委托传递给引擎,然后引擎将自身和调用类委托传递给处理 NSURLConnection 的类。处理 NSURLConnection 的类然后根据发生的情况响应调用类或引擎。正如我所说的,这可能有点复杂,但我有点需要这样做,因为登录过程是一个考验,可能会出现一些错误。
    • 是的,我们在同一个页面上。我实际上也有一个身份验证准备步骤。所以我想现在,我将按照你的建议创建自己的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 2013-01-13
    相关资源
    最近更新 更多