私は今、すべてのコアデータがメインスレッドで単一のコンテキストで管理されていることを理解しようとしています。私はインストゥルメントを使用しましたが、保存操作がメインスレッドをかなり長い間ブロックしていることに気付きました。GCD を使用してバックグラウンド スレッドで保存操作を実行したい
これで、新しいスレッド/コンテキストを作成してこのプロセスをセットアップし、「保存」通知をリッスンしてメインスレッドにマージする方法を理解しました。
しかし、新しいコンテキストを作成するとき、メイン スレッドのコンテキストからのすべての変更を新しいものに挿入/マージする必要があります。私はこれの例を見つけることができるようです。
たとえば、私の主なコンテキストでは:
- 挿入された 2x ユーザー
- 3つのウォールポストを削除しました
- 友達関係を更新しました。
これらの変更をバックグラウンド コンテキストに知らせるにはどうすればよいでしょうか。
アプリケーションの起動時にバックグラウンド コンテキストを作成し、メイン スレッドで NSManagedObjectContextObjectsDidChangeNotification をリッスンして、常に同期を維持することは理にかなっていますか??