【问题标题】:Delegate method/selector for NSURLConnectionNSURLConnection 的委托方法/选择器
【发布时间】:2011-11-10 13:48:17
【问题描述】:

我正在 Objective-C 中创建一个与 HTTP 服务器通信的服务类。我熟悉 NSURLConnection 和相关的类来向服务器发出异步请求。到目前为止,我已经使用self 作为委托,响应调用所需的四个委托方法(didReceiveResponse、didReceiveData 等)。

我正在构建的服务类必须能够同时处理多个请求,并对每个请求做出不同的响应。我正在寻找一种方法来实现这一点,而无需在 connectionDidFinishLoading 方法中进行无限切换或 if-elseif。

我的想法是创建一个实现上述四种方法的委托类,并将其提供给 NSURLConnection 对象进行对话。但是,我想在连接完成加载时通知父类,然后在父类中触发另一个方法。当然,代理不知道这是什么方法——它可能是任何东西。

如何进行?有没有办法为委托类设置选择器,并在请求完成时触发该选择器(这是一种方法)?我该怎么做?

(为我的委托创建一个委托,然后调用超类方法可以解决问题,但我真的在研究通配符方法,例如选择器。)

非常感谢任何帮助!

问候,

雷德

【问题讨论】:

    标签: objective-c delegates nsurlconnection selector


    【解决方案1】:

    我会将一个块 (^{ ... }) 传递给它应该在连接完成时调用的委托。

    【讨论】:

      【解决方案2】:

      您有三个选择:

      1. 使用block callback
      2. 使用notifications
      3. 使用委托,正如您已经建议的那样。

      所有三个都是完全有效的,但具有各种优点/缺点。全部了解它们,然后决定在每个场景中使用哪个。 :-)

      通常会选择不止一种解决方案。例如,Apple 的许多类都实现了委托方法并为同一事件发送通知。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-24
        • 1970-01-01
        • 2012-04-29
        相关资源
        最近更新 更多