我打算为我的天气应用程序使用 TBXML。到目前为止,我已经将 NSXMLParser 与 NSURLConnection 一起使用,但我觉得这必须能够更简单、更快和更稳定(当前的代码是如此复杂,小问题不断出现,调试起来很麻烦)。
我一直在寻找异步解析器,最后在 raywenderlich 上发表了一篇文章(“如何为你的 iPhone 项目选择最好的 xml 解析器” ),这篇文章将我引向了 TBXML。通读文档,我看到你也可以用一个 URL 来初始化它,这将消除使用 NSURLConnection 的需要。我的第一个问题是:与此相比,使用 NSURLRequest 有什么优势?我将在启动 TBXML 之前先检查网络连接是否正常,这样不会有问题。
我的第二个问题是关于异步的:如果我只是调用 initWithURL 或 initWithData,它的处理会是异步的吗?从我所见,它没有委托调用,而是您直接从 TBXML 对象中获取元素。如果我在它完成之前尝试从中获取元素,它会简单地挂在那里吗?因为如果您使用 initWithURL(这几乎可以回答我的第一个问题),这可能会持续特别长时间。如果是这样,TBXML 是否可以安全地在另一个线程上运行(我假设它是)?