在继续方法之前等待条件

时间:2013-01-16 08:56:53

标签: objective-c multithreading cocoa

我正在编写一个类,用于检索和解析从服务器下载的文件。

我在类中有一个解析信息的方法,并在初始化类时下载信息。

问题是,有时候,在下载信息之前会调用解析信息的方法。

FileParser *instance = [[FileParser alloc] initWithURL:@"somewhere"];
[instance parseData];

每次在初始化类之后直接调用parseData方法时,它都会失败,因为并非所有内容都可用。

如何在继续执行parseData方法之前等待所有信息下载,而不会中断主线程?

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:0)

简单:您需要在后台线程/队列上执行此整个操作,或者将FileParser类重构为更异步的设计。该设计将以回调机制为中心,例如委托或块。

答案 1 :(得分:-1)

你应该考虑使用代表。 您将下载类传递给将处理下载数据的委托。 见here