我有一个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