使用MagicalRecord同时保存背景

时间:2016-05-28 01:12:53

标签: ios objective-c core-data magicalrecord

出于测试目的,我有以下代码从主线程调用(在viewDidLoad方法中)。

for (int i = 0; i < 50; i++) {
    [MagicalRecord saveWithBlock:^(NSManagedObjectContext * _Nonnull localContext) {
        [FieldDescription MR_createEntityInContext:localContext];
    } completion:^(BOOL contextDidSave, NSError * _Nullable error) {
        if (!contextDidSave) {
            DDLogError(@"Error saving field description: %@", error.localizedDescription);
        }
    }];
}

在结果中,部分实体保存已使用contextDidSave == YES完成,但其他不是因为结果为contextDidSave == NO && error == nil。对于这些实体,我在日志中从MagicalRecord获得以下消息: NO CHANGES IN ** MagicalRecord Root Saving Context ** CONTEXT - NOT SAVING

为什么我不能用MagicalRecord做这些事情,我缺少什么?

我知道,如果我将所有50个电话放在saveWithBlock内,它会起作用,但我现在的架构不会允许我这样做,因为我从异步中进行了大量的魔术记录调用操作

UPD: 在进行更多测试时,我发现所有实体最终都保存在存储中,尽管有MagicalRecord saveWithBlock:次操作的一半已完成contextDidSave == NOerror == nil结果。无论如何,我不能依靠保存操作的结果来使我的系统可靠。

我失踪了什么,如何在没有这种奇怪行为的情况下实现这一目标?

0 个答案:

没有答案