TBXML中的异步和initWithURL

时间:2011-11-15 10:55:41

标签: objective-c xml ios tbxml

我打算在我的天气应用中使用TBXML。到目前为止,我已经将NSXMLParser与NSURLConnection一起使用,但我觉得这必须能够更简单,更快速和更稳定(当前代码是如此复杂的小问题一直在滑落,这是调试的地狱)。

我一直在寻找异步解析器,最后在一篇文章('如何在raywenderlich上为你的iPhone项目选择最佳的xml解析器')中引导我转向TBXML。通过阅读文档,我看到你也可以使用URL初始化它,这将消除使用NSURLConnection的需要。我的第一个问题是:对此使用NSURLRequest有什么好处?我将在启动TBXML之前检查网络连接是否正常,这样就不会有问题。

我的第二个问题是关于异步性:如果我只是调用initWithURL或initWithData,它的处理是否会异步?从我所看到的,它没有委托调用,而是直接从TBXML对象中获取元素。如果我在完成之前尝试从中获取元素,它会挂在那里吗?因为如果你使用initWithURL(这几乎可以回答我的第一个问题),这可能会持续很长时间。如果是这样,TBXML是否可以安全地在另一个线程上运行(我认为是这样)?

2 个答案:

答案 0 :(得分:1)

如果你想异步解析它,你真的需要一个辅助线程,套接字和类似的东西可以在runloop上工作,因为它们只需要偶尔检查一下是否有可供读取的数据。解析器确实需要使用一些处理功能..

只需使用大型中央调度,解析您的数据并使用它。我不能告诉你它的线程是否安全,但是如果它不说它不安全那么它最可能是安全的..

答案 1 :(得分:-1)

http://www.tbxml.co.uk/TBXML/TBXML_Free.html

点击链接并获得答案。