私はiOS5でこのようにクラッシュしなかったiOSアプリを持っていますが、4または5 bg/fgサイクル後の起動時にiOS6で一貫してクラッシュしています。この問題は、ALAssetsLibrary enumerateGroupsWithTypesの呼び出しにまでさかのぼります(アプリは、起動するたびに基になるフォトライブラリに同期します)。enumerateGroupsWithTypesの呼び出しは、ディスパッチキューを介して呼び出されたバックグラウンドスレッド内から行われるため、ユーザーがアプリをbgに送信した後でも、同期コードを終了できます。私が受け取るクラッシュメッセージは常に同じです:
* __addContextToList_block_invoke_0()、/ SourceCache / PhotoLibraryServices / MobileSlideShow-1647.5 / Sources / PLManagedObjectContext.m:1305でのアサーションの失敗
と
*キャッチされなかった例外'NSInternalInconsistencyException'が原因でアプリを終了しています。理由:'コンテキストが多すぎます。contextListにスペースがありません。
これらのエラーメッセージをグーグルで検索しても、何も得られませんでした。これは、アプリが少なくとも5回オン/オフを繰り返すまで発生しないため、ブロックが終了したときにAppleデータ構造からブロックが正しく削除されていない可能性があると思いますか?リードを事前に感謝します。
更新:さらに調査した後、これはALAssetsGroupLibraryの同期に関連しているようです。ALAssetsGroupSavedPhotosのみを同期する場合、またはALAssetsGroupLibraryに写真が0枚ある場合、クラッシュは発生しません。ALAssetsGroupLibraryのみを同期し、そこに少なくとも1枚の写真がある場合に発生します。