我的一个NSManagedObject属性依赖于各种属性,其中一些属于相关的NSManagedObject。
在第一次运行中,我为这样的属性实现了一个简单的瞬态属性,但我发现不可能将fetch谓词与瞬态属性一起使用。
我需要创建一个属性,以便:
答案 0 :(得分:0)
您可以使用键值观察来监视正在更改的属性,以使某些计算属性保持最新。您可以将观察者添加到要监视的属性。
修改:参考here
要正确执行此操作,您需要覆盖计算属性的属性getter,并创建keyPathsFOrValuesAffecting<Key>
函数。
Apple的例子非常好,它提供了一个案例,应该从fullName
和firstName
收集lastName
属性。
所以你需要用这个函数实现KVO:
+ (NSSet *)keyPathsForValuesAffectingFullName
{
return [NSSet setWithObjects:@"lastName", @"firstName", nil];
}
这将允许您的应用在任何时候修改这些值时得到通知。然后你只需覆盖将在此通知中调用的getter
- (NSString *)fullName
{
return [NSString stringWithFormat:@"%@ %@",firstName, lastName];
}