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