Это может быть полезным (если вы еще не зашли так далеко) для NSLog трассировка загрузки начинается и заканчивается.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"Loading: %@", [request URL]);
return YES;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"didFinish: %@; stillLoading: %@", [[webView request]URL],
(webView.loading?@"YES":@"NO"));
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
NSLog(@"didFail: %@; stillLoading: %@", [[webView request]URL],
(webView.loading?@"YES":@"NO"));
}
Я только что посмотрел вызовы всех трех в одном из моих проектов, который загружает страницу справки из моего пакета и содержит встроенные ресурсы (внешние css, YUI !, изображения). Единственный запрос, который поступает - это начальная загрузка страницы, shouldStartLoadWithRequest
не вызывается ни для одной из зависимостей. Поэтому любопытно, почему ваш didFinishLoad вызывается несколько раз.
Возможно, то, что вы видите, происходит из-за перенаправлений или, как уже упоминалось, ajax-вызовов на загруженной странице. Но вы, по крайней мере, должны иметь возможность балансировать вызовы shouldStartLoad
и любой из двух других функций делегата и иметь возможность определять, когда загрузка заканчивается.