2009-10-06 55 views
1

我有这个简单的场景:怎么可以(void)connectionDidFinishLoading返回什么?

  • main.m文件(这是我的主类)
  • myClass.m(这是一个附加的类)

在我的计划应该发生的事这样

(在main.m文件)

myClass *foo = [[myClass alloc] init]; 
NSArray *array = [foo returnAnArray]; 

什么myClass会打开一个新的NSURLConnection,检索一些数据并在它准备好时解析它并返回一个数组。

要返回数组与所分析的数据我写了这个简单的

(NSArray *) returnArray:(NSString *)dataDownloadedFromWeb 

为了知道当数据实际上已完成下载和何时开始解析它,我使用

- (void) connectionDidFinishDownloading: (NSURLConnection *connection) 

但是,如果connectionDidFinishLoading为VOID,我可以拨打returnArray:? :(

我希望这是有道理的......我真的被卡住,我似乎无法找到一个解决办法。我试图与NSNotification,但它似乎没有任何工作。

谢谢大家了支持! 恩里科

回答

0

您需要实现connectionDidFinishDownloading自己。你需要在创建它来创建你传递给NSURLConnection的委托对象。的委托对象需要实现connectionDidFinishDownloading。

的NSURLConnection的将随后致电connectionDidFinishDownloading上 您的委托对象在合适的时间。

有进一步的信息here

+0

就是这样! :)代表是要走的路,我从一开始就有了这个怀疑态度...... 感谢你的帮助,真的,你让我的一天。 仍然有很多东西需要学习Objective-C ... – 2009-10-06 22:54:33

1

想必你的意思 - (void)connectionDidFinishLoading:(NSURLConnection *)connection

反正你不等待,直到它已经完成 - 您分析数据时,它准备在 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

  • connectionDidFinishLoading:是让你知道,有不会是再降临到你的数据。
+0

+1正如Tom和jib指出的那样,您需要自己实现这些委托方法以在过程的各个阶段获得回调。 – gavinb 2009-10-06 11:24:42

相关问题