Отладка вложенных NSCollectionViews - PullRequest
4 голосов
/ 05 февраля 2010

Я не совсем уверен, как начать отладку этой проблемы.

У меня есть NSCollectionView, чье представление прототипа NSCollectionViewItem само содержит NSCollectionView (а также NSArrayController, чтобы предоставить контент для этого представления коллекции 2-го уровня). Оба уровня представления коллекции работают нормально, когда представление верхнего уровня находится в главном кончике.

Однако, когда я копирую / вставляю представление (и повторно соединяю все соответствующие привязки) в новое перо, которое загружаю с помощью loadNibNamed:owner:, появляется представление 2-го уровня, но не верхнего уровня, пустой.

После некоторого расследования я обнаружил, что myArrayController.arrangedObjects.@count действительно равно 0. ОДНАКО, NSArray, к которому привязан контроллер (Владелец файла representedObject.quizzes), когда его запрашивают .@count, возвращает 2.

quizzes действительно должен вернуть 2, потому что я сделал [testCategoryA setQuizzes:[NSArray arrayWithObjects:testQuizA1,testQuizA2,nil]];. Я проверил настройку тестов до загрузки перьев и после. Ситуация одинакова в обоих случаях.

Итак, в заключение у меня есть 2 уровня представлений коллекции, с 2 уровнями контроллеров массива. Верхний уровень всегда работает. Но 2-й уровень прерывается всякий раз, когда верхнего уровня нет в основном файле пера. И мне кажется, что часть 2-го уровня, которая ломается, является привязкой контроллера массива.

Я даже не знаю, как начать отладку в этом запутанном беспорядке перьев. Предложения?

1 Ответ

1 голос
/ 05 февраля 2010

Звучит так, как будто ваш массив опросов либо не отправляет уведомления KVO, либо вы редактируете его не-KVO-совместимым способом (т. Е. «Редактируете массив за спиной контроллера»).

Кроме того, возможно, вы захотите проверить Индексированные методы доступа для своего массива тестов по соображениям производительности.

...