在数据库中建模重复事件,并使用UILocalNotification触发事件

时间:2013-06-26 03:13:48

标签: ios core-data uilocalnotification

我不确定这是如何工作的,但我想要的是类似于iPhone附带的Apple闹钟。它基本上只是让你选择一个闹钟的时间,命名闹钟,然后你可以选择你想要它重复的频率(周日 - 周六)。根据您的选择,警报会一次或以一个重复的间隔触发。

在我的核心数据模型中,我不确定如何对其进行建模。如果我只考虑普通的旧对象,我会认为我会有一些报警对象,其中一个属性就是一个数组。在那个数组中,我可以得到Sunday-Sautrday的日值。然后,当创建一个新的警报对象时,我会根据所选时间和所选日期安排UILocalNotification。要根据数据库对象对其进行建模,我不确定我应该做什么。我想的是:

闹钟 - (姓名/字符串) 日 - (星期日 - 星期六/由整数0-6表示,从闹钟到日期的1到多个关系)

假设在数据库中没问题,那么我不确定如何安排UILocalNotifications,因为我认为每个应用只能有64个。我想我可以有一些机制来安排前64个警报,然后当应用程序打开时,它将重新安排下一个即将发生的64个事件。我会这样做吗?感谢。

1 个答案:

答案 0 :(得分: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,这样您就不需要向系统明确添加大量通知。