日付で並べ替え - Swift 3 質問する

日付で並べ替え - Swift 3 質問する

コア データ エンティティを取得する 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")
    }
}

編集: ソート セレクターは配列に追加されるので、必要に応じて複数のソート記述子を追加できることを述べておくべきでした。たとえば、最初に日付でソートし、次にレグ数でソートし、最後にボリュームでソートするなどです。

おすすめ記事