2

これがどのように機能するかはわかりませんが、iPhone に付属している Apple の目覚まし時計に似たものが欲しいです。基本的には、アラームの時刻を選択し、アラームに名前を付けてから、繰り返す頻度 (日曜日から土曜日) を選択できます。選択内容に基づいて、アラームは 1 回、または一定の間隔で繰り返されます。

私の Core Data モデルでは、それをモデル化する方法がわかりませんでした。単なる古いオブジェクトの観点から考えると、何らかのアラーム オブジェクトがあり、そのプロパティの 1 つが配列になると思います。その配列には、日曜日から土曜日までの日の値を含めることができます。次に、新しいアラーム オブジェクトが作成されたら、選択した時間と選択した日に UILocalNotification をスケジュールします。それをデータベース オブジェクトの観点からモデル化するには、何をすればよいかわかりません。私は次のようなことを考えていました:

アラーム - (名前/文字列) 曜日 - (日曜日 - 土曜日/0 から 6 の整数で表され、アラームから日付への 1 対多の関係)

データベースで問題がないと仮定すると、アプリごとに 64 個しか持てないと思っていたので、UILocalNotifications のスケジュールをどのように設定すればよいかわかりません。最初の 64 個のアラームを可能な限りスケジュールするメカニズムがあれば、アプリを開くと、次の 64 個のイベントを再スケジュールすることができると考えています。それは私がそれをする方法ですか?ありがとう。

4

1 に答える 1

0

2 つのエンティティを使用するのはやり過ぎです。私はただAlarmエンティティを持ち、アラーム日を保持するために単一の整数属性を持ちます。エンティティの外では、アラームの日数がどのように解釈されるかを定義する列挙があります。何かのようなもの:

typedef AlarmDays {
    Monday           = 0,
    Tuesday          = 1 << 0,
    Wednesday        = 1 << 1,
    Thursday         = 1 << 2,
    Friday           = 1 << 3,
    Saturday         = 1 << 4,
    Sunday           = 1 << 5
} AlarmDays;

次に、次を使用して、どの日をテストするかをテストできます。

if (alarm.alarmDays & Monday) {
    // the alarm should fire on mondays
}

UILocalNotificationまた、 などの機能を使用できるため、repeatInterval膨大な数の通知をシステムに明示的に追加する必要はありません。

于 2013-06-26T11:34:00.677 に答える