CoreDataのマルチスレッドのアクセスをチェックする

CoreDataのスレッド間のチェック


CoreDataはスレッドセーフではないため、ContextやManagedObjectがスレッドをまたぐ場合、場合によってはデッドロックになり、画面が固まったりします。
この場合によってはというのが曲者でなかなかその原因に気づかなかったりしてました。
ただiOS8.1 x Yosemiteからはフラグを設定すると解決できるみたいです。


-com.apple.CoreData.ConcurrencyDebug 1


実際に別スレッドで作ったContextをつかってオブジェクトを生成すると


エラーで止まってくれるので、間違った使い方をしててもすぐに発見できます!

もう少し早く知りたかった><

0 件のコメント:

コメントを投稿

ReactNativeでAndroid対応する話

前提 ReactNativeでiOS版のアプリをリリースしていて、Android版をリリースする話 トラブルシューティング Build.VERSION_CODES.Q が存在しないエラー compileSdkVersionを29以上にすると解決 メモリー足りないエラー Execu...