我正在开发一个应用程序,根据用户设置的偏好提醒用户操作。他们可以设置开始日期和结束日期(结束日期是可选的)。然后他们可以设置频率:
现在,我需要能够检索要在UITableView中显示的即将到来的提醒列表。如果用户忽略了通知(不要在应用程序中检查提醒),那么我需要能够跟踪这个以及稍后的数学计算。
首先,我有了UITableView的想法,只需查看提醒集,并找出在任何一天会发出什么通知。
这需要大量的日期计算,并且不允许我知道用户是否忽略了提醒。
我的下一个(也是当前的)想法是存储数据库表(如下所示)并在将来的一个月内输入提醒。并且未设置为响应的任何行意味着他们忽略它。这也会使UITableView变得非常简单。
有没有更好的方法呢?我应该提前多远创建数据库行?如果他们更改提醒,我将不得不在行上调用DELETE并重新输入;在id的方面,这个数字真的很高吗?
reminderLogs
-------------
id
reminderID
actionReceived
timestampShould
timestampTaken
comments
答案 0 :(得分:1)
这听起来像是使用Core Data的好地方。设置星号可能会很麻烦,特别是当你不熟悉它时,但是一旦你这样做,你将拥有一个持久的数据存储(相对)易于查询。您还可以更改存储对象的属性而不删除和重新创建它们,因此在用户添加或修改任务时,可以轻松地在数据库中添加或修改记录。如果您需要显示列表或对存储的数据运行任何计算,正确的查询将提取您需要知道的所有内容。
Web上有许多核心数据教程,但您最好从Apple's example开始。
答案 1 :(得分:1)
首先,给Husker Jeff +1,以及他对使用Core Data的建议。它应该是您构建通知规则的持久性方法。
我目前正在处理负责重复通知的服务器端组件。查看对周期性事件类型的描述,UILocalNotification不够灵活,只能使用repeatInterval属性。
我强烈建议您阅读以下内容:
我建议尽可能依赖UILocalNotification的repeatInterval。您可能希望将weeklyRule和dailyRule之类的内容委托给UILocalNotification的重复间隔。
对于每隔n天和每第n周的规则,您可能需要为它们创建自己的时态表达式和规则。