У меня есть массив объектов, назовите их объектами I1. Каждый объект I1 содержит массив объектов I2.
ArrayController1 управляет объектами типа I1, отображаемыми в TableView T1.
ArrayController2 управляет объектами типа I2, отображаемыми в TableView T2.
Я использую метод делегата selectionDidChange из ArrayController1, чтобы определить, какие объекты отображаются в T2.
Я добавляю и удаляю элементы I1, используя add, (или add object) и удаляю вызовы ArrayController1 из моего контроллера модели.
Все работает нормально, , за исключением , когда я удаляю элемент из середины списка T1, сообщение selectionDidChange не отправляется моему делегату, поэтому содержимое старого (удаленного) I1 по-прежнему отображается в Т2.
Я подозреваю, что это как-то связано с тем фактом, что "удаление" откладывается до следующей итерации цикла выполнения.
Я не вижу чистого способа зарегистрировать изменение выбора при удалении. Я мог бы, я полагаю, посмотреть на индексы выбора и сбросить, так сказать, содержимое T2 "вручную".
Любые предложения будут оценены.