0
コアデータモデルにリンクされたNSArrayControllerのサブクラスがあります。いずれかの方法でIは、バックグラウンドでコアデータオブジェクトのトンをインポートバックグラウンド操作の完了後にNSArrayControllerをフェッチする
[self performSelectorInBackground:@selector(someLongExpensiveOperation:) withObject:obj];
を呼び出します。
インポート操作が完了した後、インターフェイスにフェッチボタンを手動で追加してクリックしない限り、アレイコントローラは新しいデータモデルを反映するように更新されません。アレイコントローラーを強制的に更新する方法に関するアイデアはありますか?
EDIT:
はNSManagedObjectContextは、スレッドセーフであることが仮定されていないとして、私はまた、いくつかの同時実行の問題を持っていたが判明します。それについても説明しなければなりませんでした。
メインスレッドでもそうするのは良い考えです。 –
確かめてください。背景に新しいオブジェクトを挿入している間も、NSManagedObjectContextをロックしてロックを解除することを確認してください。 – lbrndnr
NSArrayControllerのfetch:メソッドをsomeLongExpensiveOperation:の最後に呼び出してみましたが、何も役に立たず、手動でボタンを押してもaction = fetch:はまだ必要でした。とにかくfetch:とprepareContentの違いは何ですか? – Tony