NSURLSession のバックグラウンド アップロードを使用しようとしてきましたが、時々このクラッシュが発生します。
Sep 25 10:01:48 ipad backboardd[29] <Warning>: MyApp[11829] has active assertions beyond permitted time:
{(
<BKProcessAssertion: 0x166b1770> identifier: com.apple.nsnetworkd.handlesession process: MyApp[11829] permittedBackgroundDuration: 30.000000 reason: backgroundDownload owner pid:8440 preventSuspend preventThrottleDownUI preventIdleSleep preventSuspendOnSleep
)}
コードをデバッグすると、クラッシュが発生したときにapplication: handleEventsForBackgroundURLSession:completionHandler:
メソッドが呼び出され、そこでセッションを再作成し、Apple ドキュメントが推奨するように完了ハンドラーを保存することがわかりましたが、タスク終了のデリゲートは決して呼び出されず、どちらも呼び出されませんURLSessionDidFinishEventsForBackgroundURLSession:
。クラッシュは、NSURLSession デリゲートでアップロードの終了を処理した後に完了ハンドラーを呼び出すためです。
デリゲートが呼び出されない理由を誰か教えてもらえますか?