Je ne sais pas comment trier avec Realm. Mon code actuel est.
data = realm.objects(WorkoutSet)
data = data!.sorted("date")
Je veux trier date an Int
des nombres élevés aux nombres faibles. Les docs ont besoin de plus d’informations et le lien GitHub envoie un message 404
.
Vous pouvez ajouter un paramètre ascending
à la méthode sorted
:
data = data!.sorted("date", ascending: false)
Ceci trie votre WorkoutSet en utilisant le champ de date par ordre décroissant.
Mettre à jour
Avec Swift 3 et la dernière version de RealmSwift, cela est désormais:
data = data!.sorted(byKeyPath: "date", ascending: false)
Si vous souhaitez évaluer vous-même les critères de tri, vous pouvez utiliser:
data = data!.sorted(by: { (lhsData, rhsData) -> Bool in
return lshData.something > rhsData.something
})
Sachez cependant que le tri de vos résultats par vous-même renvoie un objet Array
au lieu d'un objet Realm Results
. Cela signifie qu'il y aura une surcharge de performances et de mémoire, car Results
est paresseux et si vous triez avec la méthode ci-dessus, vous perdrez ce comportement paresseux car Realm doit évaluer chaque objet! Vous devez vous en tenir aux résultats autant que possible. Utilisez la méthode ci-dessus uniquement s'il n'y a pas d'autre moyen de trier vos éléments.