NSTableView загружает данные, но не может перезагрузить

У меня есть два настроенных NSTableView, которые заполняются одним nstableviewdatasource и делегатом. Оба табличных представления получают данные при первой загрузке без проблем, однако они отказываются перезагружать данные. И источник данных tableview, и делегаты подключены к моему объекту класса tableviewcontroller в файле xib.

Я подтвердил, что мой метод, который устанавливает новые данные в массив, который я использую для заполнения табличных представлений, фактически получает измененные данные. Этот метод — единственный способ заполнить массив, который используют методы делегата источника данных. Он перезагружается из основного потока:

myArray = [classThatHoldsNewVariables.array mutableCopy]; 
[self.myTableView reloadData];

-numberOfRowsInTableView не вызывается с reloadData. Он вызывается только при запуске приложения.

Я пытался вручную настроить источник данных и методы делегирования в коде, но безуспешно. Я пробовал так много разных способов заставить reloadData работать, и ничего не происходит.

Помощь :(

ИЗМЕНИТЬ:

Я исправил проблему. Это была проблема экземпляра, когда я выделял свой nstableviewdatasource из другого класса для перезагрузки данных. Init не загружает экземпляр, используемый пером, поэтому он перезагружает другой экземпляр моего табличного представления, который не отображается пользователю. Я решил это, внедрив nsnotifications в свой класс tableviewcontroller.


person user3444713    schedule 21.03.2014    source источник


Ответы (2)


Похоже, что myTableView это nil, поэтому отправка метода reloadData ничего не делает.

Если это розетка, убедитесь, что она подключена в xib. Если нет, обратите внимание, что на табличное представление UITableViewController по умолчанию ссылается свойство tableView, а не myTableView.

person jemmons    schedule 21.03.2014
comment
Это определенно связано, так как я могу получить идентификатор через myTableView. Это табличное представление OS X, а не UITableView. - person user3444713; 23.03.2014

Я исправил проблему. Это была проблема экземпляра, когда я выделял свой nstableviewdatasource из другого класса для перезагрузки данных. Init не загружает экземпляр, используемый пером, поэтому он перезагружает другой экземпляр моего табличного представления, который не отображается пользователю. Я решил это, внедрив nsnotifications в свой класс tableviewcontroller.

person user3444713    schedule 24.03.2014