Данные никогда не «загружаются» в NSArrayController.Контроллер массива не является самим массивом.Он не содержит или иным образом не хранит данные.
Вместо этого контроллер массива запрашивает объект, с которым он связан, для определенных частей данных, только когда эти конкретные данные необходимы.Это особенно верно для базовых данных, в которых управляемые объекты полностью создаются только при обращении к их атрибутам.Контроллер массива перемещает данные из структуры данных типа массива в другой объект (обычно это элемент пользовательского интерфейса).
Если вы хотите изменить существующее хранилище, прежде чем оно отобразится в пользовательском интерфейсе, вам нужно обработать данные до того, какконтроллер массива, используемый UI, даже инициализирован.Если вы используете NSPersistentDocument
, то вы можете переопределить readFromURL:ofType:error:
для извлечения и изменения всех ваших объектов при первом открытии документа.Кроме того, вы можете переопределить методы windowWillLoad
или showWindow
контроллера окна.
Независимо от того, где вы это делаете, вы должны выбрать все управляемые объекты, которые вы хотите изменить.Вы можете программно создать контроллер массива, чтобы сделать это, но запрос на выборку проще обрабатывать, если у вас есть большое количество объектов для изменения.