我不确定这将如何工作,但是我想要的是与iPhone附带的Apple闹钟类似的东西。基本上,它只是让您选择警报的时间,命名警报,然后可以选择重复的频率(星期日-星期六)。根据您的选择,警报将触发一次或重复触发一次。
在我的核心数据模型中,我不确定如何建模。如果我只考虑普通的旧对象,那么我会认为我会有一些警报对象,并且其属性之一是数组。在该数组中,我可以具有周日至周日的日值。然后,在创建新的警报对象时,我将为选择的时间和选择的日期安排UILocalNotification。为了对数据库对象建模,我不确定应该做什么。我在想类似的东西:
警报-(名称/字符串)
日期-(星期天-星期六/由0到6的整数表示,从“警报”到“日期”的比例为1
假设在数据库中可以,那么我不确定应该如何安排UILocalNotifications,因为我认为每个应用程序只能有64个。我在想,我可以采用某种机制来安排可能的前64个警报,然后在打开应用程序时,它将仅重新计划接下来的64个事件。那是我会怎么做的吗?谢谢。
最佳答案
使用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
),因此无需向系统显式添加大量的通知。
关于ios - 在数据库中为重复事件建模,并使用UILocalNotification触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310935/