Я создаю свое собственное привязываемое пользовательское древовидное представление. Для этого я хотел бы понаблюдать за NSTreeController на предмет обновлений отношений его элементов ко многим. NSTreeController привязан к контексту управляемого объекта CD. Каждый уровень глубины имеет свой собственный CD Entity со свойствами parent / children / isLeaf. Мне нужно поддерживать ту же иерархию в представлении (и порядке дочерних элементов). Если что-то вставлено, я начну наблюдать за его дочерним свойством. И, конечно, мне нужно знать путь индекса для вновь вставленного объекта.
Я хотел бы точно знать, что было вставлено / удалено, чтобы я мог начать наблюдать за вставками / удалениями его дочерних элементов. Насколько я понимаю, стандартный способ сделать это - изучить "изменить" NSDictionary внутри наблюдатьValue: forKey ..., но изменения имеют значение NULL.
Я знаю, что это долгая ошибка, но есть ли ХОРОШИЙ способ решения этой проблемы? Я видел, что в некоторых примерах представления сохраняют массивы, а затем, когда модель изменяется, вы сравниваете различия. Это более сложно для просмотра дерева. Также этот способ тратит впустую память и циклы процессора. У меня есть одно обходное решение, которое я тестирую. Это вроде как работает, поэтому пока не буду описывать.