2011-06-28 10 views
0

私はこのリカレントイベントのリストを自分のアプリケーションのテーブルに持っています。 iCalのようなもの。ユーザーは次のようなイベントに設定することができます:毎週水曜日午後6時 iPhone - リカレントイベントのリストをソート

  • 火曜日午後3時
  • 満たす妻の隣

    • 会議を毎日午後1時
    • 薬を飲む子どもたちの土曜日と日曜日の午前9時
    を取ります

    質問は次のイベントになるのを発見するためにどのように並べ替えますか?

    コアデータエンティティを作成する最良の方法がわかりません。

    コアデータの2番目の管理対象オブジェクトとして週の曜日を作成し、イベントを表す最初の管理対象オブジェクトとの一対多の関係を作成する必要があります(各イベントは1日以上の週オブジェクトを持つことができます)。週の曜日を表すブール値のエンティティを持つ管理対象オブジェクトを1つ作成する必要がありますか?

    コアデータでこれを行うさまざまな方法が想像できますが、イベントでソートされたリストをコアデータからどのように抽出できるのか分かりません。今日の日付と最後に近いイベントを最初に表示するリストイベントはもっと遠く。

    ここで私が尋ねるのは、コードではなく、これをどのように構築すべきかというアイデアです。これをまとめる最良の方法は何ですか?

    ありがとうございました。

  • 答えて

    1

    私がすることは、コアデータの "イベント"エンティティに日付と繰り返し属性があることです。イベントが発生した日時と、次回発生するまでの秒数を設定します。イベントが発生したら、-dateByAddingTimeIntervalで日付を現在の日付と繰り返し間隔で更新します。

    次のイベントを取得するために、日付で並べ替えることができます。 1か月のカレンダーレイアウトのように、イベントを複数回表示する場合は、繰り返し間隔で-dateByAddingTimeInterval:をループし、反復ごとにビューにマークします。

    +0

    ありがとうございます、これはかなり良いアイデアだと思います! – SpaceDog

    関連する問題