我是 Objective-c 的新手,我正在为 android 和 iPhone 做同样的应用程序。
在 Java 中,我使用 try-catch 块来捕获网络异常并进行处理。
在 Objective-C 中,我正在使用:
[[NSXMLParser alloc] initWithContentsOfURL:url]
那么,在解析输入流时如何处理网络异常,所以如果网络出现故障或有任何问题,我可以通知用户并保持我的应用程序正常工作?
我是 Objective-c 的新手,我正在为 android 和 iPhone 做同样的应用程序。
在 Java 中,我使用 try-catch 块来捕获网络异常并进行处理。
在 Objective-C 中,我正在使用:
[[NSXMLParser alloc] initWithContentsOfURL:url]
那么,在解析输入流时如何处理网络异常,所以如果网络出现故障或有任何问题,我可以通知用户并保持我的应用程序正常工作?
如果您使用的是 NSXMLParser 则使用它的 delgate 方法..
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
NSLog(@"Error = %@", parseError);
}
使用这些initWithContentsOfURL:
方法从来都不是一个好主意。
您最好通过NSURLConnection
或某些库(如AFNetworking
. 这将允许您处理 HTTP 状态代码和网络错误。
例如,NSURLConnectionDelegate
有一个回调方法– connection:didFailWithError:
,在发生错误时将被调用。然后,您可以检查错误对象以查看问题所在。
在调用 URL 之前 您可以检查 Internet 连接。
我建议您查看以下链接 如何检查 iOS 或 OSX 上的活动 Internet 连接?
我建议使用 raptureXML 解析 XML 文件,这非常简单。 https://github.com/ZaBlanc/RaptureXML