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

我不知道这是如何工作的,但我想要的是类似苹果公司的iPhone闹钟。 它基本上只是让你select一个闹钟的时间,给闹钟命名,然后你可以select你想要重复的周期(周日到周六)。 根据您的select,报警会触发一次或重复一次。

在我的核心数据模型中,我不确定如何build模。 如果我只是用简单的旧对象来思考,我会想我会有一些报警对象,其中一个属性是一个数组。 在那个arrays中,我可以获得星期天 – 星期三的date值。 然后,当一个新的报警对象被创build,我会安排一个UILocalNotification所select的时间,以及select的日子。 以数据库对象来build模,我不知道我该怎么做。 我在想像这样的东西:

闹钟 – (名称/string)日 – (星期天 – 星期六/用整数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; 

然后你可以testing应该使用哪一天:

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

而且您可以使用UILocalNotification的function,例如repeatInterval因此您不需要向系统明确添加通知的公告。