奇妙な問題があります。設定は次のとおりです。
- NSOperationサブクラスオブジェクトを追加するNSOperationQueueがあります。これらは、NSURLConnectionsendSynchronousRequestメソッドを使用してネットワーキングを行います。私が理解しているように、これらはそれぞれ独自のスレッドを取得するNSOperationsであるため、完全に非同期です。
- バックグラウンドのネットワーク操作なしでアプリを起動した場合、UIWebViewへのURLのロードは問題なく機能します。
アプリを起動してバックグラウンドネットワーク操作を実行すると、UIWebViewにURLをロードすると次のエラーが発生します。
エラードメイン=WebKitErrorDomainコード=102UserInfo=0x1996d60"フレームの読み込みが中断されました"
その後UIWebViewをロードしようとすると、同じエラーで失敗します。
UIWebViewとNSURLConnectionの間に、注意が必要な奇妙な相互作用がありますか?次のステップは、同期呼び出しを完全に非同期のNSOperationに置き換えることですが、これは非常に奇妙なバグなので、専門家に聞いてみようと思いました。
NSURLConnectionsendSynchronousRequestメソッドまでエラーを切り分けました。これをNSOperationから呼び出すと、UIWebViewがひどく壊れます。
102エラーは、WebKitの「ポリシー変更」エラーと関係があります。これは、どこにも文書化されていないか、文書化されていません。
誰かが何か考えがありますか?どんな助けでも大歓迎です!
編集:これはある種のCookieの問題のようです。WebサーバーがバックグラウンドHTTPリクエストを介してCookieを設定している場合、UIWebViewの読み込みに失敗する理由は何ですか?