委托NSURLConnection的方法/选择器

时间:2011-11-10 13:48:17

标签: objective-c delegates nsurlconnection selector

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

我正在构建的服务类必须能够同时处理多个请求,并对每个请求做出不同的响应。我正在寻找一种实现这一目标的方法,在connectionDidFinishLoading方法中没有无限开关或if-elseif。

我有想法创建一个实现上述四种方法的委托类,并将它交给NSURLConnection对象进行通信。但是,我想在连接完成加载时通知父类,然后在父类中触发另一个方法。当然,代表不知道这是哪种方法 - 它可以是任何方法。

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

(为我的委托创建委托,然后调用超类方法可以做到这一点,但我真的在研究通配符方法,例如选择器。)

非常感谢任何帮助!

此致

雷因德

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您有三种选择:

  1. 使用block callback
  2. 使用notifications
  3. 使用代理,如您所建议的那样。
  4. 这三个都是完全有效的,但有各种优点/缺点。全部学习,然后决定在每个场景中使用哪个。 : - )

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