最近在開發一個IOS應用應用到webview控件加載網頁,問題來了,webview加載網頁是需要時間的,如果用戶操作比較快,出現一個load頁面沒有加載完畢的就進入下一個的話,那么就會進入:
func webView(webView: UIWebView, didFailLoadWithError error: NSError) {
//TODO
}
問題就在這里了,由于我的寫的代碼,如果報錯,我給予他一個返回的頁面。這樣的代碼,每次就出現,如果用戶操作特別頻繁,一個頁面沒有加載完畢就進入下一個頁面,這時候,
func webView(webView: UIWebView, didFailLoadWithError error: NSError) {
的error 加載失敗返回 nsurlerrordomain -999 的
從蘋果公司的文檔:
NSURLErrorCancelled (-999)
"當異步加載取消返回。當它執行取消操作上加載資源時,Web 工具包框架委托將收到此錯誤。請注意,NSURLConnection 或 NSURLDownload 委托不會收到此錯誤如果取消下載。"
所以,最有可能為這種情況發生的情況為您加載請求,然后另一個 (或相同),第一完成之前。這可能發生。例如,如果調用 loadRequest (或 loadHTMLString ) 這樣的方法在 viewDidAppear: 可以調用多次。這也據報發生如果你快速點擊 2 鏈接在 UIWebView 。
那么怎么解決這個問題呢。
其實,我們只要忽略他就可以了,
func webView(webView: UIWebView, didFailLoadWithError error: NSError) {
if error.code == NSURLErrorCancelled {
return ;? //忽略這個錯誤。
}