我有一個tableView和一個segmentControlView它從數據庫做不同的查詢,但我無法得到表重新加載。如果我手動重新加載數據更改。Swift reloadTableView查詢後表格
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
段被選中後,我想要重新加載表。但我認爲在queryForTable完成之前重新加載表 – PoolHallJunkie
執行'PFQuery'異步工作。在返回數據後更新塊中的表 – vadian