コア データ エンティティを取得する func getData() があり、それを日付順に並べ替えたいと考えています。NSPredicate または Predicate を適用して CoreData から日付順に並べ替えられたデータを取得するにはどうすればよいでしょうか?
私のコアデータエンティティ: エンティティ: 経費 属性:
額
カテゴリー
日付
getData()関数 { context = appDelegate.persistentContainer.viewContext
do { expenses = try context.fetch(Expenses.fetchRequest()) } catch { print("Cannot fetch Expenses") }
}
ベストアンサー1
述語は検索結果をフィルタリングするためのものです。選別これらには、NSSortDescriptor を使用する必要があります。Expenses エンティティに Date 型の date という属性があると仮定します。
func getData() {
let context = appDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<Expenses>(entityName: "Expenses")
let sort = NSSortDescriptor(key: #keyPath(Expenses.date), ascending: true)
fetchRequest.sortDescriptors = [sort]
do {
expenses = try context.fetch(fetchRequest)
} catch {
print("Cannot fetch Expenses")
}
}
編集: ソート セレクターは配列に追加されるので、必要に応じて複数のソート記述子を追加できることを述べておくべきでした。たとえば、最初に日付でソートし、次にレグ数でソートし、最後にボリュームでソートするなどです。