Copyright (C) iPhoneアプリ開発備忘録 All rights reserved.
ブログ内で記したコード、内容の正確性は保証いたしません。
記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。



2022年10月28日

Core Dataのエンティティへの更新時に、CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. とコンソールに表示されて、アプリがクラッシュする場合の対処法



iOS16.0以降において、Core Dataのエンティティに大量のデータを連続して更新しているとき、
CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.
とコンソールに表示されて、アプリがクラッシュする場合がある。

これはCore Dataの更新をメインスレッドで実行している場合に発生する現象であり、、バックグラウンドスレッドで実行することにより回避できる。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{


// Core Dataの更新処理


});



iOS16.0未満ではこの現象はメインスレッドで実行している場合でも発生していなかったが、iOS16.0以降では高い確率で発生する。


参考記事;
https://stackoverflow.com/questions/25812268/core-data-error-exception-was-caught-during-core-data-change-processing


posted by mobileDeveloper at 13:54 | Comment(0) | TrackBack(0) | Core Data はてなブックマーク - Core Dataのエンティティへの更新時に、CoreData: error: Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.  とコンソールに表示されて、アプリがクラッシュする場合の対処法 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
Apple、Appleのロゴ、App Store、iPodのロゴ、iTunesは、米国および他国のApple Inc.の登録商標です。
iPhone、iPod touch、iPadはApple Inc.の商標です。
iPhone商標は、アイホン株式会社のライセンスに基づき使用されています。
その他、本ブログに記載されている製品名、会社名は、それぞれ各社の商標または登録商標です。