Итак, у меня есть два объекта, Invoice и InvoiceLineItem. InvoiceLineItem имеет свойство с именем cost
и динамически создается на основе других свойств. Чтобы помочь с КВО / привязками я использую:
+ (NSSet *)keyPathsForValuesAffectingCost {
return [NSSet setWithObjects:@"lineItemType", @"serviceCost", @"hourlyRate", @"timeInSeconds", @"productCost", @"quantityOfProduct", @"mileageCost", @"milesTraveled", nil];
}
Это прекрасно работает. Когда я редактирую свойство, такое как serivceCost, основная стоимость в представлении таблицы обновляется нормально.
В объекте Invoice у меня есть NSMutableArray из InvoiceLineItems. Счет имеет похожее свойство, которое называется totalCost
. Он рассчитывается путем итерации по отдельным позициям и до тех пор, пока позиция не помечается как удаленная (что я делаю по причинам синхронизации), она складывает затраты и создает totalCost.
Теперь мой вопрос / вопрос. Как настроить totalCost счета-фактуры таким образом, чтобы он работал с KVO / привязками при изменении одной из затрат на позицию?
Я попытался настроить:
+ (NSSet *)keyPathsForValuesAffectingTotalCost {
return [NSSet setWithObjects:@"lineItems.cost", nil];
}
но это не работает. Я получаю сообщение об ошибке в консоли: [<NSCFArray 0x1499ff40> addObserver:forKeyPath:options:context:] is not supported. Key path: cost