Изменить словарь в КВО всегда содержит NULL для selectionIndex - PullRequest
3 голосов
/ 26 апреля 2011

Я использую KVO для получения уведомлений об изменениях в выборке NSArrayControllerIndex

[contoller addObserver:self forKeyPath:@"selectionIndex" options:NSKeyValueObservingOptionNew context:NULL];

и когда я устанавливаю выделение с помощью setSelectedObjects: я получаю уведомление об изменении selectionIndex, как я ожидаю. Однако, когда я пытаюсь получить NSKeyValueChangeNewKey из словаря изменений, он всегда возвращает NULL.

Печать словаря показывает:

{ вид = 1; новый = ""; }

Это потому, что значение selectionIndex является NSUInteger и не может быть помещено в словарь, или я делаю что-то не так?

Для меня это не такая проблема, так как я могу получить selectionIndex от контроллера другими способами, когда получаю это уведомление, я просто хотел бы знать, почему он не выполняет то, что ожидал.

1 Ответ

2 голосов
/ 13 февраля 2012

Я наблюдаю такое поведение в сборке приложения 10.6 с Xcode 4.2.1 на Lion 10.7.3.

Уведомление срабатывает, но словарь изменений всегда NULL.

Как вы говорите, получив уведомление, вы можете получить selectionIndex вручную, так что это не проблема для моего приложения.

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

http://www.cocoabuilder.com/archive/cocoa/231886-problem-observing-selectionindex-of-an-array-controller.html

...