Может кто-то прояснить что-то для меня. Apple, документация UITableView
говорит, когда uitableview вызывает reloaddata
`UITableView` overrides the layoutSubviews method of `UIView` so that it calls reloadData only when you create a new instance of `UITableView` or when you assign a new data source.
Я получаю следующее поведение:
В моих viewDidLoad
, я tableView.dataSource = self.
В моей getDataFromDatabase
я называю [tableView reloadData]
. Кажется, что это работает нормально, но я думаю, что происходит то, что таблица заполняется пустым массивом, а затем, когда вызов db возвращается, он перезагружает его массивом с данными.
Я пытаюсь сделать следующее: В viewDidLoad
, удалить tableView.dataSource = self;
, и добавить его в методе getDataFromDatabase
. например
(void)getDataFromDatabase
{
[getData completionHandler^() // an async db call
{
tableView.dataSource = self;
}];
}
Это, кажется, не работает. Таблица не заполнена. Он работает, если я добавлю [tableView reloadData]
после установки dataSource = self
, но из документации не следует автоматически вызывать reloadData
, когда я устанавливаю dataSource = self
, «он вызывает reloadData только при создании нового экземпляра UITableView
или при назначении нового источника данных. " ?
Пожалуйста, проверьте свой массив после получения деталей из базы данных. Если ваш запрос не сможет извлечь записи, какие данные будут перезагружаться в виде таблицы – chandan
@Jason Данный код имеет несколько опечаток. Возможно, из-за этого есть проблема. Скопируйте и вставьте код, который компилятор смог проанализировать без ошибок. – CouchDeveloper