У меня есть tableView и segmentControlView, который выполняет другой запрос из базы данных, но я не могу заставить таблицу перезагрузить. Если я вручную перезагружу изменения данных.Swift reloadTableView после queryForTable
override func queryForTable() -> PFQuery {
var query:PFQuery = PFQuery(className:"movies")
if(objects?.count == 0)
{
query.cachePolicy = PFCachePolicy.CacheThenNetwork
}
if self.currentSegmentSelected == 0 {
query.whereKey("genres", equalTo:"Action")
query.orderByAscending("title")
}
else if currentSegmentSelected == 1 {
query.whereKey("genres", equalTo:"Comedy")
query.orderByAscending("title")
}
else if currentSegmentSelected == 2 {
query.whereKey("genres", equalTo:"Crime")
query.orderByAscending("title")
}
return query
}
И метод делегата от SegmentControl
func segmentView(segmentView: SMSegmentView, didSelectSegmentAtIndex index: Int) {
self.currentSegmentSelected = index
queryForTable()
self.tableView.reloadData()
}
Редакцией: Если я .findObjectsInThebackground так:
override func queryForTable() -> PFQuery {
var query:PFQuery = PFQuery(className:"movies")
query.findObjectsInBackgroundWithBlock { (_: [PFObject]?, error:NSError?) -> Void in
if error == nil {
self.tableView.reloadData()
}}
'NSInternalInconsistencyException', причина: «Этот запрос имеет отличное сетевое соединение. Тебе нужно подождать, пока это не закончится.
не смог получить то, что вы хотите. Вы хотите, чтобы таблица перезагрузилась после чего? – adolfosrs
После выбора сегмента Я хочу перезагрузить таблицу. но я думаю, что таблица перезагружается до завершения запросаForTable. – PoolHallJunkie
Выполнение 'PFQuery' работает асинхронно. Обновите таблицу в блоке после возвращения данных – vadian