52

我正在尝试更新我的 iPhone 应用程序以使用 OS 3.0。我有一个 UIWebView 可以很好地显示页面。但是当我单击一个链接时,它会调用我的代理 didFailLoadWithError 并且错误是操作无法完成。(NSURLErrorDomain 错误 -999。)我验证这仍然适用于 OS 2.2.1,所以它在 3.0 中有所改变。

有任何想法吗?

4

3 回答 3

120

我能够在这里找到答案。

此线程包含此错误的描述:This error may occur if an another request is made before the previous request of WebView is completed...

我通过忽略此错误并让 webview 继续加载来解决此问题。

if ([error code] != NSURLErrorCancelled) {
//show error alert, etc.
}
于 2009-06-27T18:56:17.577 回答
29

NSURLErrorCancelled (-999)

“取消异步加载时返回。Web Kit 框架委托在对加载资源执行取消操作时会收到此错误。请注意,如果取消下载,NSURLConnection 或 NSURLDownload 委托将不会收到此错误。”

对于我的情况(可能还有你的情况),这可以忽略:

if([error code] == NSURLErrorCancelled) return; // Ignore this error
于 2010-11-10T18:05:51.717 回答
11

上面的两个回复是正确的> 如果加载请求导致取消,只需返回即可。

另外我想指出的是,人们不要忘记在你的didFailLoadWithError方法中放置一个 NSLog,这样可以通过发现问题来防止浪费大量时间!

所以这是我上面提到的最终解决方案:

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    NSLog(@"ERROR : %@",error); //Get informed of the error FIRST
    if([error code] == NSURLErrorCancelled) 
        return;
}
于 2013-04-23T11:32:48.653 回答