Context
У меня очень нормальная настройка в моем приложении: NSOutlineView (поддерживаемый NSTreeController, привязанным к базовым данным) заполняет NSTableView (поддерживаемый NSArrayController, привязанным к базовым данным) на основе того, что пользовательвыбирает в схематическом виде.Оба контроллера (и их представления) связаны обычным образом ---> привязка contentSet к NSArrayController указывает на свойство NSSet объекта, представленного выбранной строкой в outlineView.
Итак, предположим, что пользователь выбирает«Папка X» в схематичном виде.В «папке X» содержится 1200 элементов, каждый из которых поддерживается сущностью Core Data, а каждый представляет собой строку в tableView.
Проблема
Мое приложение необходимо изменитьсвойство каждого из этих 1200 объектов, поэтому у меня есть цикл, который делает именно это.Но КАЖДЫЙ раз, когда я получаю доступ к объекту и устанавливаю новое свойство, NSTreeController и NSArrayController запускают уведомление KVO с измененным объектом в качестве объекта уведомления.Это убийство.
Если ничего не выбрано в outlineView, цикл завершается более или менее мгновенно.Если выбрана «папка X», эти уведомления KVO замедляют процесс до ~ 8 секунд.
Что мне нужно
Способ, чтобы ОСТАНОВИТЬ контроллеры от запуска уведомлений KVO, или способОбойти эту проблему, чтобы обновление объектов не происходило медленнее, если они выбраны в NSController.