[iOS] Web view使用時要注意的小事: NSURLErrorDomain -999

當你使用UIWebView處理外部網頁顯示時,要注意一下你的實作。
由於我實作了接收錯誤的方法
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
並且我把接收到的錯誤都顯示出來,造成我看到了一個奇特的錯誤:
NSURLErrorDomain -999
這個編號是
error.code = NSURLErrorCancelled
這表示你有一個讀取的動作被取消了,造成的原因非常簡單,比方說你點了A連結,但畫面沒有跑出來,你又很快的點了B連結,於是UIWebView改讀取B連結的內容,並取消了讀取A連結的動作,於是讀取A連結的動作最後以失敗收場,就會收到一個錯誤訊息。
因此你就把他給濾掉吧,剛好Apple裡面也有範例把這個錯誤給濾掉:
if ([error.domain isEqual:NSURLErrorDomain] && (error.code == NSURLErrorCancelled)){
    return;
}

留言