如何中止 iPhone 的 NSXMLParser 等待

发布于 2024-09-02 00:05:44 字数 284 浏览 4 评论 0原文

当初始化 NSXLParser 时,如下所示:

NSXMLParser* xmlParser=[[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:urlstring]];

如果服务器关闭,它将等待相当长的时间才能返回线程。这真的很烦人,即使我退出应用程序并重新启动应用程序,它也会继续黑屏等待,直到超时。

如何中止 init?有没有更好的方法在调用解析器之前检查服务器是否已启动?谢谢你的帮助。

When init the NSXLParser as below:

NSXMLParser* xmlParser=[[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:urlstring]];

if the server is down, it will wait for quite some time before the thread returns. It is really annoying even if I exit the application and restart the application, it will continue to wait with a black screen until it times out.

How to I abort the init? Is there a better way to check whether the server is up before calling the parser? Thanks for helping.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

真心难拥有 2024-09-09 00:05:44

您应该使用 NSURLConnection 及其委托来下载到 NSData 类型。
然后就可以正确控制连接了。
从那里您可以将 NSData 传递给 NSXMLParser 并单独控制它。
我希望它对你有帮助。

You should use NSURLConnection and its delegates to download to an NSData type.
Then you can control the connection properly.
From there you can pass the NSData to the NSXMLParser and control it separately.
I hope it help you.

揽月 2024-09-09 00:05:44

我最终使用 UIWebView 首先请求 URL。如果完成加载,我将调用 xmlparser 再次请求相同的 url。 UIWebView 请求的好处是它在不同的线程上运行,因此 UI 不会冻结。

这不是想法,而是想法。我讨厌两次请求同一个 URL。如果您有更好的建议,请帮忙。

I ended up use a UIWebView to request the URL first. If it finish loading, I will then call the xmlparser to request the same url again. The nice thing about UIWebView request is that it runs on a different thread so the UI does not freeze.

This is not idea; I hate to request the same URL twice. If you have a better suggestion, please help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文