NSOperationQueue addOperationWithBlockを使用して初期化コードを遅延させても問題ないので、アプリはiOSのウォッチドッグによって強制終了されませんでしたか?NSOperationQueueを使用してiOSアプリケーションの初期化を実行する
私たちが知っているように、iOSはアプリケーション:didFinishLaunchingWithOptionsまたはapplicationDidBecomeActiveにあまりにも多くの時間を費やすと、アプリケーションを終了させます。
しかし、私は初期化のために多くのことがあります。現在、私は同期的なHTTPリクエストをしています(それを同期させましょう:)。予期せぬ時間がかかることがあります。
この問題のより良い解決策を提案できますか?
ありがとうございました!
編集:誰でも、同期されたHTTPリクエストは問題の対象ではありません。 多くのサードパーティ製SDKが統合されています。私はそれらのすべてを初期化する必要がありますが、初期化中に何をしているのか分かりません。私は、iOSで殺される危険性を最小限に抑えようとしています。
まず、httpリクエストを非同期にすることをお勧めします。このコード(httpコード)をNSOperationに入れてもOKですが、非同期HTTPリクエストと比較して、実際には意味をなさない – rpechayr
@rpechayr NSOperationQueueまたはGCD経由で発行された同期フェッチについては、 )という名前のスレッドをブロックしないようにするのは、NSURLConnection上に '+ sendAsynchronousRequest:queue:completionHandler:'がないpre-iOS 5デバイスの4行のフォールバックです。だから、私たちは、現在の大規模ではあるが、縮小しつつある少数のユーザーに対して、将来の保守性を助けるために最小限のコードを書こうとする一方で、互換性を追加することを話している。 – Tommy