Вы на правильном пути. Допустим, у вас есть два атрибута: foo
и bar
, причем bar
рассчитывается на основе foo
. Для этого вам необходимо реализовать метод +keyPathsForValuesAffectingBar
:
+ (NSSet *)keyPathsForValuesAffectingBar {
return [NSSet setWithObject:@"foo"];
}
Теперь при каждом изменении foo
все объекты, связанные с bar
, будут обновляться.
Очевидно, что это не принесет много пользы, если вы кешируете значение bar
, поскольку вам нужно фактически пересчитать и повторно его перечитать. Однако, если вы не выполняете какие-то серьёзные жесткие вычисления для определения bar
, вам действительно лучше просто вычислять bar
при каждом вызове метода -bar
.