J'ai du mal à terminer l'implémentation de Pull to Refresh.Pull to Refresh ajoute les mêmes données déjà
Lorsque je Tirer pour rafraîchir, il ajoute simplement les mêmes données que j'ai déjà. Je vais donc obtenir les mêmes données, multiplié par 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)
}
}
}
je commencé à penser que peut-être il était que je devais enlever tout de la objects
avant que j'ai ajouté les nouveaux, mais de toute façon cela n'a pas fonctionné en ajoutant cette ligne self.objects.removeAll()
avant self.objects.append(newPlay)
en handleRefresh
fonction.
Des idées? Merci!
Parfait. J'accepterai de répondre dans 2 minutes quand ça me le permettra. – SRMR
Mettez également votre bloc dispatch_async après la boucle for. Il est appelé pour rien pour chaque article que vous avez. –
Fera, merci! – SRMR