0

現在のプロジェクト (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];

設定方法が間違っていますか?ルート コンテキストがバックグラウンド スレッドに保存されないのはなぜですか?

4

1 に答える 1

0

これは MagicalRecord のバグです。すぐに修正する必要がある場合は、experimental ブランチに切り替えてみてください。そこで対処されていると思います。

于 2013-07-26T02:58:48.270 に答える