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 中的一个错误。如果您需要立即修复它,请尝试切换到实验分支,我相信它已经在那里解决了。

于 2013-07-26T02:58:48.270 回答