gpt4 book ai didi

objective-c - TBXML 中的异步和 initWithURL

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:23 25 4
gpt4 key购买 nike

我打算将 TBXML 用于我的天气应用程序。到目前为止,我已经将 NSXMLParser 与 NSURLConnection 一起使用,但我觉得这必须能够更简单、更快和更稳定(当前代码非常复杂,小问题不断出现,很难调试)。

我一直在搜索异步解析器,并在 raywenderlich 上的一篇文章(“如何为您的 iPhone 项目选择最好的 xml 解析器”)中找到了 TBXML。阅读文档后,我发现您还可以使用 URL 初始化它,这将消除使用 NSURLConnection 的需要。我的第一个问题是:与此相比,使用 NSURLRequest 有什么优势?我将在启动 TBXML 之前先检查网络连接是否正常,这样就不会出现问题。

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

最佳答案

如果你想异步解析它,你真的需要一个辅助线程,套接字和类似的东西可以在运行循环上工作,因为它们只需要每隔一段时间检查一次是否有数据可供读取。解析器确实需要使用一些处理 powah..

只需使用 grand central dispatch,解析您的数据并使用它。我不能告诉你它的线程是否安全,但如果它没有说它不安全,那么它很可能是安全的。

关于objective-c - TBXML 中的异步和 initWithURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8135218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com