OStack程序员社区-中国程序员成长平台

标题: iphone - 在不触发委托(delegate)方法的情况下更改 NSManagedObject 属性? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 22:14
标题: iphone - 在不触发委托(delegate)方法的情况下更改 NSManagedObject 属性?

有什么方法(或技巧)可以修改委托(delegate) NSFetchedResultsController 当前持有的 NSManagedObject 而不会触发 didChangeObject:controllerWillChangeContent: 委托(delegate)方法?

例如,当前如果我更改 myObject.property = @"hello";,则会触发委托(delegate)方法并对我的 TableView 进行更新,但我不希望这种情况发生,但仅适用于我明确指定的某些更改,而不是所有更改。



Best Answer-推荐答案


NSManagedObject 中的 setPrimitiveValue:forKey: 方法正是这样做的,例如

[myObject setPrimitiveValue"hello" forKey"property"]

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

[myObject setPrimitiveProperty"hello"]

但您应该阅读 documentation这种方法,因为有一些“特殊考虑”。

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

关于iphone - 在不触发委托(delegate)方法的情况下更改 NSManagedObject 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11653939/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4