我是Objective-c的新手,我正在为Android和iPhone做同样的应用程序。
在Java中,我使用try-catch块来捕获网络异常并处理它。
在Objective-C中我正在使用:
[[NSXMLParser alloc] initWithContentsOfURL:url]
那么,在解析输入流时如何处理网络异常,所以如果网络出现故障或有任何问题我可以通知用户并保持我的应用程序正常工作?
答案 0 :(得分:1)
如果您使用的是NSXMLParser,请使用其委托方法..
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
NSLog(@"Error = %@", parseError);
}
答案 1 :(得分:1)
使用initWithContentsOfURL:
方法永远不是一个好主意。
您最好通过NSURLConnection
或某些类似AFNetworking
的库来检索数据。这将允许您处理HTTP状态代码和网络错误。
例如,NSURLConnectionDelegate
有一个回调方法– connection:didFailWithError:
,如果出现错误,将会调用该方法{{3}}。
然后,您可以对错误对象进行检查,以查看出现了什么问题。
答案 2 :(得分:0)
拨打URL之前您可以检查互联网连接。
我建议你看下面的链接 How to check for an active Internet connection on iOS or OSX?
我建议解析XML文件使用raptureXML这很简单。 https://github.com/ZaBlanc/RaptureXML