将数据从异步URL连接返回给调用者

时间:2011-04-01 18:22:00

标签: iphone objective-c cocoa

我正在尝试让我的类(“调用者”)向控制器对象发送消息,以异步方式返回从NSURLConnection收集的数据。即,我希望调用者能够执行NSData * myData = [urlconnectioncontroller getData];之类的操作,而无需调用者自己实现NSURLConnection委托方法。有些东西告诉我这是不可能的。我想我可以实现[urlconnectioncontroller requestDataWithCallback:(SEL)callback]之类的东西,然后让调用者实现callback方法,该方法将在NSURLConnection调用connectionDidFinishLoading委托方法时接收数据。不过,我不确定这是做这种事情的最好方法。任何指导都将不胜感激。

2 个答案:

答案 0 :(得分:1)

阻止/回调是可行的方法。

答案 1 :(得分:0)

检查NSURLConnection及其委托方法。一切都在那里 - 三种方法:

  1. 用于开始连接(用于分配数据池,如NSMutableData实例var)
  2. 用于收集数据(在每个收到的数据块上重复调用)
  3. 用于完成连接(使用实际接收的数据执行某些操作)
  4. 还有几个保险,以防万一在开始时连接失败或超时。