2011-11-10 163 views
0

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

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

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

如何继续?有没有办法为委托类设置选择器,并在请求完成时触发该选择器(这是一种方法)?我该如何做这样的事情?

(创建委托我的委托,然后调用父类方法可以做的伎俩,但我真的很为通配符的方法,如选择。)

任何帮助,不胜感激!

问候,

雷因德

回答

0

我会通过一个块(^{ ... }),以当连接完成后,它应该调用该委托。

0

你有三个选择:

  1. 使用block callback
  2. 使用notifications
  3. 使用委托,因为你已经建议。

这三者都是完全有效的,但具有各种优点/缺点。全部学习,然后决定在每种情况下使用哪一种。 :-)

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

相关问题