現在のプロジェクト (v2.1) で MagicalRecord と MagicalImport を試しています。新しいエンティティを挿入すると、UI スレッドがロックされることが時々あることを除けば、これまでのところ問題はありません。これは私が新しいエンティティを挿入する方法です:
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
//import an entity here
}]
エンティティを保存するときに、デバッグ コンソールで次のことに気付きました。
Saving <NSManagedObjectContext (0x1c558da0): *** BACKGROUND SAVING (ROOT) ***> on *** MAIN THREAD ***
私は github で MagicalRecord コードを調べましたが、ここで言及されている 3 レベルの MOC 戦略を使用しているようです: http://www.cocoanetics.com/2012/07/multi-context-coredata/。この場合、ログが示すように、ルート コンテキストはメイン スレッドではなくバックグラウンド スレッドに保存する必要があります。次の行を使用して、coredata スタックを起動して実行します。
[MagicalRecord setupCoreDataStackWithStoreNamed:COREDATA_STORENAME];
設定方法が間違っていますか?ルート コンテキストがバックグラウンド スレッドに保存されないのはなぜですか?