Текущая ситуация: прямая привязка
У меня есть NSTableView
, который отображает данные, полученные из NSArray
моих пользовательских объектов.
Требуемый подход: контроллер массива
Тем не менее, было бы "лучшей практикой" использовать NSArrayController
вместо этого как фасад моего произвольного объекта модели.
Итак, я продублировал таблицу в своем приложении и создал новый NSViewController
, где я связал Table Content
из NSTableView
с NSArrayController
. Я добавил IBOutlet
для этого класса, чтобы теперь я мог настроить свой View Controller следующим образом:
ContactListViewController *myVC = [[ContactListViewController alloc] init];
// Tell the ArrayController where the content-array is.
myVC.contactsArrayController.content = self.myModel.contactsArray;
Теперь, поскольку я связал Table Content
табличного представления с контроллером массива, я ожидал, что, как только я заполню массив данными (из удаленного сервиса), обновится табличное представление, что имеет место для другого моего подхода, где я связываюсь с myModel.contactsArray
напрямую.
Проблема: нет данных
Однако таблица остается пустой. Должен ли я настроить что-то еще, чтобы это работало (Может быть, какой-то willChangeValueForKey
-магический или что-то еще, что я пропустил. Я уже пытался установить контроллер массива как dataSource
и delegate
NSTableView
, но это тоже не сработало (во всяком случае, мне не ясно, как dataSource
и Table Content
привязка "связаны друг с другом").