1
我很难完成拉到刷新的实施。拉到刷新添加相同的数据已经有
当我拉到刷新,它只是添加我已经有的相同的数据。因此,我将得到同样的数据,乘以2
viewDidLoad
:
override func viewDidLoad() {
super.viewDidLoad()
self.refreshControl?.addTarget(self, action: "handleRefresh:", forControlEvents: UIControlEvents.ValueChanged)
let query = CKQuery(recordType: "Play", predicate: predicate)
publicData.performQuery(query, inZoneWithID: nil) { results, error in
if error == nil { // There is no error
for play in results! {
let newPlay = Play()
newPlay.color = play["Color"] as! String
self.objects.append(newPlay)
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.tableView.reloadData()
})
}
}
else {
print(error)
}
}
}
handleRefresh
:
func handleRefresh(refreshControl: UIRefreshControl) {
let query = CKQuery(recordType: "Play", predicate: predicate)
publicData.performQuery(query, inZoneWithID: nil) { results, error in
if error == nil { // There is no error
for play in results! {
let newPlay = Play()
newPlay.color = play["Color"] as! String
self.objects.append(newPlay)
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.tableView.reloadData()
refreshControl.endRefreshing()
})
}
}
else {
print(error)
}
}
}
我开始想,也许这是我需要删除所有的objects
之前,我附加了新的,但不知何故没有工作,添加此行self.objects.removeAll()
之前self.objects.append(newPlay)
在handleRefresh
函数。
任何想法?谢谢!
完美。它会让我在2分钟内接受答案。 – SRMR
也可以在for循环之后放置dispatch_async块。它被称为没有为你有每个项目。 –
会做,谢谢! – SRMR