我正在编写一个类,用于检索和解析从服务器下载的文件。
我在类中有一个解析信息的方法,并在初始化类时下载信息。
问题是,有时候,在下载信息之前会调用解析信息的方法。
FileParser *instance = [[FileParser alloc] initWithURL:@"somewhere"];
[instance parseData];
每次在初始化类之后直接调用parseData
方法时,它都会失败,因为并非所有内容都可用。
如何在继续执行parseData方法之前等待所有信息下载,而不会中断主线程?
任何帮助表示感谢。
答案 0 :(得分:0)
简单:您需要在后台线程/队列上执行此整个操作,或者将FileParser
类重构为更异步的设计。该设计将以回调机制为中心,例如委托或块。
答案 1 :(得分:-1)
你应该考虑使用代表。 您将下载类传递给将处理下载数据的委托。 见here