正确设置MagicalRecord以在后台线程上保存rootSavingContext

时间:2013-07-26 00:41:05

标签: ios core-data magicalrecord magicalrecord-2.1

我一直在为我当前的项目(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];

我在设置方式上做错了什么?为什么我的根上下文没有保存在后台线程上?

1 个答案:

答案 0 :(得分:0)

这是MagicalRecord中的错误。如果您需要立即修复它,请尝试切换到实验分支,我相信它已在那里得到解决。