web-dev-qa-db-ja.com

レルムを使用して並べ替える方法は?

Realmを使用して並べ替える方法がわかりません。私の現在のコードは。

data = realm.objects(WorkoutSet)
data = data!.sorted("date")

date an Intを大きい数字から小さい数字に並べ替えたい。ドキュメントにはさらに情報が必要で、GitHubリンクは404メッセージ。

20
Cody Weaver

ascendingパラメーターをsortedメソッドに追加できます。

data = data!.sorted("date", ascending: false)

これにより、日付フィールドを使用してWorkoutSetが降順に並べ替えられます。

更新

Swift 3およびRealmSwiftの最新バージョンでは、次のように変更されました。

data = data!.sorted(byKeyPath: "date", ascending: false)

ソート基準を自分で評価する場合は、次を使用できます。

data = data!.sorted(by: { (lhsData, rhsData) -> Bool in
   return lshData.something > rhsData.something
})

ただし、結果を自分でソートすると、Realm ArrayオブジェクトではなくResultsが返されることに注意してください。 Resultsが遅延しているため、パフォーマンスとメモリのオーバーヘッドがあることを意味します。上記の方法でソートすると、Realmが各オブジェクトを評価する必要があるため、その遅延動作が失われます。可能な限り結果に固執する必要があります。アイテムを並べ替える他の方法がない場合にのみ、上記の方法を使用してください。

56
joern