Ios 编辑上下文中的所有实体

Ios 编辑上下文中的所有实体,ios,core-data,magicalrecord,Ios,Core Data,Magicalrecord,我有一个问题,当使用魔法记录来更改所有记录的某些属性时,最佳做法是什么 我发现的唯一方法是获取存储块中的所有实体,然后逐个枚举。有更好的解决办法吗 [MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { NSArray * devices = [CDDevice MR_findByAttribute:@"primary" withValue:@"YES" inContext:localCont

我有一个问题,当使用魔法记录来更改所有记录的某些属性时,最佳做法是什么

我发现的唯一方法是获取存储块中的所有实体,然后逐个枚举。有更好的解决办法吗

 [MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
        NSArray * devices = [CDDevice MR_findByAttribute:@"primary" withValue:@"YES" inContext:localContext];

        [devices enumerateObjectsUsingBlock:^(CDDevice  * device, NSUInteger idx, BOOL * _Nonnull stop) {
            CDDevice * tmpDevice = [device MR_inContext:localContext];
            tmpDevice.primary = @(0);
        }];
    } completion:^(BOOL contextDidSave, NSError *error) {
        ;
    }];
差不多

[CDDevice MR_ChangeAtribute:"primary" toValue:@(0)];

所有CDDevice记录的更改都将primary更改为YES。

这是核心数据方式。取、换、重复

然而,如果你有很多事情要做,你应该把它们都打包在一个自动释放池中,然后分小批处理,然后在每个批处理中将对象变回错误。这可以防止内存爆炸

但是,通过使用NSBatchUpdateRequest可以避免所有这些

我不使用MR,但谷歌快速搜索找到了这个链接,标题是

然而,这组功能的提交似乎是在10月10日提交的相对较新的,所以你必须自己做一些工作,看看它是否被正式发布。。。或者如果您想使用预发布版本