1

我有这个简单的场景:

  • 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)

但是我可以在哪里以及如何调用returnArray: if connectionDidFinishLoading 是 VOID?:(

我希望这是有道理的......我真的被困住了,我似乎无法找到解决方案。我尝试使用 NSNotification 但它似乎也不起作用。

谢谢大家的支持!恩里科

4

2 回答 2

1

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

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

  • connectionDidFinishLoading: 是让你知道不会有更多的数据出现在你的面前。
于 2009-10-06T11:08:41.523 回答
0

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

然后 NSURLConnection 将在适当的时候在您的委托对象上调用 connectionDidFinishDownloading。

这里有更多信息

于 2009-10-06T11:03:06.917 回答