Core Data 内にタスクのリストがあります。NSFetchedResultsController を使用して、それらを UITableView にフェッチします。
カスタムオーダーでカスタムセクションが必要です:
- 期限切れ
- アクティブ
- 進行中
- 遅らせた
- 完了しました
タスクがどのセクションに入る必要があるかを判断するために、相対オブジェクトの他の属性に基づいてその場で計算される派生一時属性を使用します。
残念ながら、フェッチ要求で使用されるソート記述子として派生値を渡すことはできません。これは、フェッチが要求されているデータを既に持っていることに依存しているためです。鶏卵。
なぜそれができないのか理解していますが、それでは問題の解決にはなりません!
私はもう試した:
NSFetchedResultsController をサブクラス化して、「セクションとインデックス タイトルの作成をカスタマイズ」します。たぶん私はこれを間違っているかもしれませんが、これはセクションの名前と順序を変更するだけであり、それらのセクションに入る数ではありません (これは重要です)。
セクションごとに配列を設定し、それらをテーブルに供給します (不格好で遅いですが、完全に機能します)。
進行中および延期されたタスクをリッピングします (これは機能しますが、理想的ではありません)。このようにして、dueDate で並べ替え、一時的な値を介して sectionNameKeyPath を駆動できます。
誰もがより良いアイデアを持っていますか? このような質問はすでにかなりの数ありますが、どれもきちんとした解決策にはなりません。
前もって感謝します!
乾杯