Создайте метод -thirdValue в вашем подклассе NSManagedObject, который выполняет вычисления:
- (CGFloat)thirdValue
{
return value1 / value2; // should probably do a value2 != 0 check
}
, а затем + keyPathsForValuesAffectingValueForKey для класса:
+ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key
{
NSSet *superSet = [super keyPathsForValuesAffectingValueForKey:key];
if ([key isEqualToString:@"thirdValue"])
return [[NSMutableSet setWithObjects:@"value1", @"value2", nil] unionSet:superSet];
return superSet;
}
это устанавливает третье значение как зависимоепо значению1 и значению2.Всякий раз, когда значение1 или значение2 изменятся, также будет уведомление KVO для третьего значения.Так что, если у вас есть поле, которое привязывается к нему, поле будет отображать новое вычисленное значение.Это удобный трюк, когда вам нужно отобразить клавишу, значение которой зависит от других клавиш.