Суммирование столбца через связь с основными данными - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь изменить учебник Майка Лебедя Основные расходы на данные , чтобы иметь таблицу со списком категорий в одном столбце и их балансами в следующем столбце.

У меня естьпопытался связать значение второго столбца с:

1. CategoryController.arrangedObjects.transactions.@sum.amount
2. CategoryController.arrangedObjects.@sum.transactions.@sum.amount

Кажется, что номер 2 ненадолго работает с существующими записями, но это явно не правильно, так как я не могу заставить его работать снова.Я получаю сообщение:

[<_NSFaultingMutableSet 0x100166b00> addObserver:forKeyPath:options:context:] is not supported. Key path: @sum.amount

Возможно ли это без кода?Кажется странным, что я могу легко получить @sum для выбранной категории в метке, но не для всего списка в столбце ...

Я нашел это сообщение в списке разработчиков и подумал, что это может быть ответом, который я получил, но в таком случае я надеялся, что кто-то сможет объяснить это немного лучше.Я пытался создать новый контроллер массива, но все, что я пробовал, казалось, все глубже и глубже уводило меня в пропасть программирования.

РЕДАКТИРОВАТЬ: - Я исправил отдельную проблему с привязкой к неправильному контроллеру и подумал, что я 'вернусь к этому.Обе вышеперечисленные опции работают (подсчет столбцов), но когда я пытаюсь добавить новую категорию, они оба вызывают это исключение.Попытка удалить существующую категорию вызывает другое исключение (которое, я полагаю, является обратным первому):

Cannot remove an observer <NSTableBinder 0x10017e5b0> for the key path "transactions.@sum.amount" from <NSManagedObject 0x10303dda0> because it is not registered as an observer

1 Ответ

1 голос
/ 19 апреля 2012

Не знаю, поможет ли это вам, но я только что столкнулся с подобной проблемой, когда привязка NSTextField к сумме одного из моих полей (arrayController.arrangedObjects. @ Sum.duration) вызвала бы исключение, тогда как привязка arrayController.selection. @ sum.duration работал нормально.

Я закончил тем, что поместил это в код, например:

// In my ViewController class.
- (void) awakeFromNib
{
    [totalLabel bind:@"value" toObject:arrayController
         withKeyPath:@"arrangedObjects.@sum.duration" 
             options:nil];
}

... и, похоже, работает как ожидалось.

...