首页 文章

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

提问于
浏览
2

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

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

报警 - (名称/字符串)日 - (周日 - 周六/由整数0-6表示,从报警到日期的1到多个关系)

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

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 ,因此您无需向系统明确添加大量通知 .

相关问题