NSDate
eventStartとeventEndの2つの列を持つテーブルのsqliteバックエンドを持つcoreDataがあります。かなり複雑な選択と並べ替えを実行したいと思います。
アプリケーションのメインディスプレイの1つについて、次の2つを取得したいと思います。
- 期間(eventEnd-eventStart)が指定された値よりも小さかった10個のイベント
- 期間が指定された値よりも大きかった10のイベント
- イベントは、指定された値からの距離に基づいて正しくソートする必要があります
私がすぐに直面した2つの問題は、式から列を選択する方法が見つからないことです(日付の計算)。2つ目はNSSortDescriptor
、式ではなく、列でのみ機能するようです。これはSQLiteの動作とは逆であり、生のSQLを分解する方が簡単かどうか疑問に思っています。
特に、並べ替えは式上にあるため、クエリは並べ替えのためにすべてのデータを返す必要があるため、操作するデータは大きすぎて並べ替えなどのメモリに収まりません。