怎么能(void)connectionDidFinishLoading返回什么东西?

时间:2009-10-06 10:55:42

标签: iphone objective-c nsurlconnection

我有这个简单的场景:

  • 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,但它似乎也没有用。

感谢大家的支持! 恩里科

2 个答案:

答案 0 :(得分:1)

大概是指你的意思 - (void)connectionDidFinishLoading:(NSURLConnection *)connection

无论如何,你不要等到它完成了 - 你准备好了解数据 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

  • connectionDidFinishLoading:让你知道不会有更多的数据出现。

答案 1 :(得分:0)

您需要自己实现connectionDidFinishDownloading。您需要创建一个委托对象,在创建它时将其传递给NSURLConnection。委托对象需要实现connectionDidFinishDownloading。

NSURLConnection将在合适的时间在您的委托对象上调用connectionDidFinishDownloading。

还有其他信息here