Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 每次更改核心数据MO中的另一个属性时重新计算属性_Cocoa_Core Data - Fatal编程技术网

Cocoa 每次更改核心数据MO中的另一个属性时重新计算属性

Cocoa 每次更改核心数据MO中的另一个属性时重新计算属性,cocoa,core-data,Cocoa,Core Data,我在一个核心数据管理对象中有一个属性,我正试图根据另一个属性更新该属性 如何实现每次更改原始属性时调用的方法 awakeFromInsert和awakeFromFetch显然不起作用。 我见过,但我真的不明白我怎么能用它 非常感谢你走对了方向。假设您有两个属性:foo和bar,其中bar是基于foo计算的。为此,您需要实现+keypathsforvaluesafectingbar方法: + (NSSet *)keyPathsForValuesAffectingBar { return [

我在一个核心数据管理对象中有一个属性,我正试图根据另一个属性更新该属性

如何实现每次更改原始属性时调用的方法

awakeFromInsert
awakeFromFetch
显然不起作用。 我见过,但我真的不明白我怎么能用它


非常感谢

你走对了方向。假设您有两个属性:
foo
bar
,其中
bar
是基于
foo
计算的。为此,您需要实现
+keypathsforvaluesafectingbar
方法:

+ (NSSet *)keyPathsForValuesAffectingBar {
    return [NSSet setWithObject:@"foo"];
}
现在,每当
foo
更改时,绑定到
bar
的任何对象都会自动更新

显然,如果要缓存
bar
的值,这不会有多大好处,因为实际上需要重新计算并重新设置它。但是,除非您正在进行一些严格的核心计算来确定
bar
,否则每次调用
-bar
方法时,您最好只计算
bar