gpt4 book ai didi

iphone - initWithContentsOfURL 出现奇怪的错误

转载 作者:行者123 更新时间:2023-12-03 20:17:08 26 4
gpt4 key购买 nike

我目前正在从外部 API 读取一些 XML。

下面的代码工作正常:

NSError *error = nil;

NSString *xmlString = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];

但是,我想添加一些错误处理(“无法访问服务器”、“没有互联网连接”等)。因此,我在 Reachability 示例代码的帮助下将此 block 放置到位:

if ([error code] == kCFURLErrorNotConnectedToInternet) {
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:NSLocalizedString(@"No Internet connection",@"Error message displayed when not connected to the Internet.") forKey:NSLocalizedDescriptionKey];
NSError *noConnectionError = [NSError errorWithDomain:NSCocoaErrorDomain code:kCFURLErrorNotConnectedToInternet userInfo:userInfo];
[self handleError:noConnectionError];
} else {
// otherwise handle the error generically
[self handleError:error];
}

handleError 方法仅显示包含错误详细信息的 UIAlertView。当我在没有连接的情况下运行应用程序时,我希望看到错误消息。然而,我得到的只是“操作无法完成(Cocoa 错误 256)”,据我所知,这是一个通用的读取错误。

起初我以为这可能只是 TouchXML 的方法,但正如你所看到的,我将其更改为 NSString 的 initWithCOntentsOfURL。

有人能解释一下这个问题吗?

谢谢

丰富

最佳答案

您看到除 kCFURLErrorNotConnectedToInternet 之外的其他错误。该错误消息不是来自您的自定义错误,而是由后台的某个对象生成的。您需要转储实际收到的错误的 userInfo 字典才能查看详细信息。我会记录它而不是使用警报来确保您获得所有信息。

如果 userInfo 字典实际上是空的,我将首先测试 url 以查看它是否实际返回任何内容。尝试初始化一个数据对象,看看会得到什么。这将缩小 URL 问题和将数据转换为字符串问题之间的范围。

关于iphone - initWithContentsOfURL 出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2008420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com