2

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

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

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

假设在数据库中没问题,那么我不确定应该如何安排 UILocalNotifications,因为我认为每个应用程序只能有 64 个。我在想我可以有一些机制来安排前 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 回答