次のような単純なリクエストをロードする UIWebView があります。
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"derp.com"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15.0];
[webView loadRequest:theRequest];
webView で JavaScript を実行する別のメソッドがあります。このメソッドは、さまざまなソース (webViewDidFinishLoad および viewDidAppear を含む) から複数回呼び出すことができます。エラーから保護するために、次のように if ステートメントでこれをラップしました。
if (!self.webView.loading) {
... do stuff....
}
問題は self.webView.loading が常に 0 であることです。オブザーバーをセットアップしようとしました (いくつかの異なるバリエーションを試してみました.... sytnax が 100% 確実ではありません):
[self addObserver:self forKeyPath:@"webView.loading" options:0 context:NULL];
しかし、observeValueForKeyPath:ofObject:change:context: は呼び出されません。