我正在尝试更新我的 iPhone 应用程序以使用 OS 3.0。我有一个 UIWebView 可以很好地显示页面。但是当我单击一个链接时,它会调用我的代理 didFailLoadWithError 并且错误是操作无法完成。(NSURLErrorDomain 错误 -999。)我验证这仍然适用于 OS 2.2.1,所以它在 3.0 中有所改变。
有任何想法吗?
我正在尝试更新我的 iPhone 应用程序以使用 OS 3.0。我有一个 UIWebView 可以很好地显示页面。但是当我单击一个链接时,它会调用我的代理 didFailLoadWithError 并且错误是操作无法完成。(NSURLErrorDomain 错误 -999。)我验证这仍然适用于 OS 2.2.1,所以它在 3.0 中有所改变。
有任何想法吗?
我能够在这里找到答案。
此线程包含此错误的描述: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.
}
NSURLErrorCancelled (-999)
“取消异步加载时返回。Web Kit 框架委托在对加载资源执行取消操作时会收到此错误。请注意,如果取消下载,NSURLConnection 或 NSURLDownload 委托将不会收到此错误。”
对于我的情况(可能还有你的情况),这可以忽略:
if([error code] == NSURLErrorCancelled) return; // Ignore this error
上面的两个回复是正确的> 如果加载请求导致取消,只需返回即可。
另外我想指出的是,人们不要忘记在你的didFailLoadWithError方法中放置一个 NSLog,这样可以通过发现问题来防止浪费大量时间!
所以这是我上面提到的最终解决方案:
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"ERROR : %@",error); //Get informed of the error FIRST
if([error code] == NSURLErrorCancelled)
return;
}