У меня есть объект, который реализует индексированные методы доступа для ключа с именем contents
. В тех аксессуарах я вызываю willChange:valuesAtIndexes:forKey:
и didChange:valuesAtIndexes:forKey:
, когда я изменяю базовый массив.observValueForKeyPath: ofObject: change: context: не работает должным образом с массивами
У меня также есть объект пользовательского вида, который связан с contents
через NSArrayController
. В observeValueForKeyPath:ofObject:change:context:
значение только в словаре изменений для NSKeyValueChangeKindKey
Я когда-либо видел NSKeyValueChangeSetting
. Когда я добавляю объекты в массив, я ожидаю увидеть NSKeyValueChangeInsertion
.
Воспроизведение внутреннего представления объектов, которое он наблюдает каждый раз, когда я вставляю один элемент - особенно когда я загружаю сотни предметов, - представляет довольно сложную задачу, как вы могли себе представить. Что я делаю неправильно, что Cocoa, кажется, думает, что я устанавливаю совершенно новый массив каждый раз, когда я добавляю или удаляю один элемент?
Да, это не документировано вообще. Я никогда не видел этого раньше, в том числе и в любом из примеров, которые я видел. Возможно ли это после Пантеры? – Alex
Да, это всегда сработало для меня. Я зарегистрировал ошибку в документации: x-radar: // problem/6588723 (http://openradar.appspot.com/6588723). –