更改NSManagedObject属性而不触发委托方法?

时间:2012-07-25 16:04:30

标签: iphone objective-c ios core-data

在没有触发NSManagedObjectNSFetchedResultsController委托方法的情况下,我是否有任何方式(或技巧)可以修改当前由委派的didChangeObject:持有的controllerWillChangeContent:

例如,当前如果我更改myObject.property = @"hello";,则会触发委托方法并对我的表视图进行更新,但我不希望这种情况发生,但仅针对我明确指定的某些更改,并非所有变化。

1 个答案:

答案 0 :(得分:4)

来自setPrimitiveValue:forKey:的{​​{1}}方法就是这样做的,例如

NSManagedObject

或者,使用动态生成的访问器方法:

[myObject setPrimitiveValue:@"hello" forKey:@"property"]

但你应该阅读该方法的documentation,因为有一些“特别注意事项”。

另一种方法可能是创建"nested managed object context"并对该子上下文执行所有修改。仅当保存子上下文时,更改才会传播到父上下文。