1

私は、ユーザーが設定した設定に基づいてアクションを思い出させるアプリに取り組んでいます。開始日と終了日を設定できます (終了日はオプションです)。次に、頻度を設定できます。

  • 毎日
  • 毎週
  • 1~9日ごと
  • 1~9週間ごと
  • 月の特定の日に
  • 特定の日付

ここで、今後のリマインダーと過去のリマインダーのリストを取得して、UITableView に表示できるようにする必要があります。また、ユーザーが通知を無視した場合 (アプリのリマインダーをオフにしないでください)、後で数学的な計算を行うために、これも追跡できるようにする必要があります。

最初に、UITableView が設定されたリマインダーを見て、特定の日にどの通知が発生するかを把握するというアイデアがありました。

これには日付の計算が多く必要であり、ユーザーがリマインダーを無視したかどうかを知ることはできません。

私の次の (そして現在の) アイデアは、(以下のような) データベース テーブルを保存し、リマインダーの将来の月に入力することです。そして、応答するように設定されていない行は、それを無視したことを意味します。これにより、UITableView の実行も非常に簡単になります。

これを行うより良い方法はありますか?データベース行はどのくらい前に作成する必要がありますか? 彼らがリマインダーを変更した場合、おそらく行で DELETE を呼び出して再入力する必要があります。これは、ID に関して非常に高い数を持っていても問題ありませんか?

reminderLogs
-------------
id
reminderID
actionReceived
timestampShould
timestampTaken
comments
4

2 に答える 2

1

これは、Core Data を使用するのに適した場所のように思えます。特に慣れていない場合は、アスタリスクを設定するのが面倒な場合がありますが、一度設定すると、(比較的) クエリが簡単なデータの永続的なストアが得られます。保存されたオブジェクトを削除して再作成せずに属性を変更することもできるため、ユーザーがタスクを追加または変更するときに、DB 内のレコードを簡単に追加または変更できます。リストを表示したり、保存されたデータに対して計算を実行したりする必要がある場合、適切なクエリを使用すると、必要な情報がすべて表示されます。

Web には多数の Core Data チュートリアルがありますが、Apple の例から始めることもできます。

于 2012-07-13T02:05:03.603 に答える
1

まず、Husker Jeff と Core Data を使用するという彼の提案に +1 してください。これは、通知ルールを構築するための永続化の方法である必要があります。

私は現在、定期的な通知を担当するサーバー側のコンポーネントに取り組んでいます。定期的なイベントの種類の説明を見ると、UILocalNotification は、repeatInterval プロパティだけを使用するほど柔軟ではありません。

以下を読むことを強くお勧めします。

  1. Martin Fowler の定期的なイベントのパターン。
  2. IceCube は、Ruby で開発された、繰り返し発生するイベントと一時的な表現を処理するための繰り返し発生するイベント ライブラリです。オブジェクト グラフを実装する方法についての良いアイデアが得られるはずです。
  3. iCal に適した DB スキーマの構築に関するスタック オーバーフローのトピック。

可能であれば、UILocalNotification の repeatInterval に依存することをお勧めします。おそらく、weeklyRule や DailyRule などを UILocalNotification の繰り返し間隔に委譲したいと思うでしょう。

n 日ごと、n 週ごとなどのルールの場合は、おそらく独自の時間式とそれらのルールを作成する必要があります。

于 2012-07-13T02:18:51.887 に答える