0

我是 Objective-c 的新手,我正在为 android 和 iPhone 做同样的应用程序。

在 Java 中,我使用 try-catch 块来捕获网络异常并进行处理。

在 Objective-C 中,我正在使用:

[[NSXMLParser alloc] initWithContentsOfURL:url]

那么,在解析输入流时如何处理网络异常,所以如果网络出现故障或有任何问题,我可以通知用户并保持我的应用程序正常工作?

4

3 回答 3

1

如果您使用的是 NSXMLParser 则使用它的 delgate 方法..

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
NSLog(@"Error = %@", parseError);
}
于 2013-09-18T09:12:27.627 回答
1

使用这些initWithContentsOfURL:方法从来都不是一个好主意。

您最好通过NSURLConnection或某些库(如AFNetworking. 这将允许您处理 HTTP 状态代码和网络错误。

例如,NSURLConnectionDelegate有一个回调方法– connection:didFailWithError:,在发生错误时将被调用。然后,您可以检查错误对象以查看问题所在。

于 2013-09-18T09:12:48.853 回答
0

在调用 URL 之前 您可以检查 Internet 连接。

我建议您查看以下链接 如何检查 iOS 或 OSX 上的活动 Internet 连接?

我建议使用 raptureXML 解析 XML 文件,这非常简单。 https://github.com/ZaBlanc/RaptureXML

于 2013-09-18T09:28:09.233 回答