2010-05-13 43 views
0

当初始化的NSXLParser如下:如何中止iPhone的的NSXMLParser等待

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

如果服务器发生故障,它会等待线程返回之前相当长一段时间。即使我退出应用程序并重新启动应用程序,它仍然很烦人,它将继续等待黑屏,直到超时。

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

回答

2

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

+0

谢谢你的回复。我完全忘了这个问题。我确实完全按照你的建议做了。此外,有必要在runloop中添加NSURLConnection以防止UI在加载期间冻结:http://www.cocoabyss.com/foundation/nsurlconnection-synchronous-asynchronous/ – 2011-09-15 04:38:32

+0

它帮助了我:-) – 2011-09-30 08:58:23

+0

已过时: - ):-) – 2011-09-30 08:59:01

0

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

这不是主意;我讨厌两次请求相同的URL。如果您有更好的建议,请提供帮助。