2015-05-12 32 views
-1

我需要解析从HTTP流中检索到的一些xml文件,以我收到它们的顺序。我创建了一个自定义NSOperation,其中有一个NSXMLParser对象,对于每个新文件,我都将一个新操作添加到NSOperationQueue。 由于解析器是事件驱动的,即使我使用waitUntilFinished:YES,所有操作一起运行。 什么是最好的方法使用NSXMLParserNSOperationQueue串行(但运行在一个单独的线程比UI的方式)?NSXMLParser在NSOperation

+1

没有最好的办法来解决这个问题,你的方法完全取决于你的需求。我在主线程上使用NSXMLParser已经完美无缺,因为我的feed不是那么大。您如何协调您的业务可能因多种因素而异。如果您使用GCD,则可以在其他线程上的操作完成时发出多个线程信号。 – TheCodingArt

+0

谢谢,我想如果我有一个非事件驱动的解析器,我可以继续使用我的方法。你如何使用GCD和NSXMLParser?处理完XML后,我可以发送通知,但不知道如何处理。 –

+0

对不起,但老实说这个问题太广泛了。您需要以特定的方式提供更具体的示例,您希望以特定的结果完成某些操作。根据上述问题,组织代码和处理事物的方法太多了。你需要针对某个非常具体的问题,否则你可能只想对编码模式和多线程做更多的研究。 – TheCodingArt

回答

0

我发现NSXMLParser是同步的,所以我只需要把maxConcurrentOperationCount放在NSOperationQueueparse阻止当前线程,同时解析回调被调用,并在完成时返回。