我正在开发一个应用程序,它根据用户设置的首选项提醒用户操作。它们可以设置开始日期和结束日期(结束日期是可选的)。然后他们可以设置频率:
现在,我需要能够检索即将出现的和过去的提醒列表,以便在UITableView中显示。如果用户忽略了通知(不要删除应用程序中的提醒),那么我需要在以后的数学计算中跟踪这一点。
首先,我认为UITableView只需查看提醒集,并确定在任何一天都会发出哪些通知。
这将需要大量的日期计算,并且不允许我知道用户是否忽略了提醒。
我的下一个(也是当前的)想法是存储一个数据库表(如下所示),并在未来一个月内输入提醒。任何未被设置为响应的行都意味着它们忽略了它。这也会使UITableView变得非常简单。
有什么更好的方法吗?我应该提前多长时间创建数据库行?如果他们更改提醒,我可能会调用DELETE对行并重新输入它们,这是否可以有很高的id数字?
reminderLogs
-------------
id
reminderID
actionReceived
timestampShould
timestampTaken
comments发布于 2012-07-13 02:05:03
这听起来像是一个使用核心数据的好地方。设置星号可能会很痛苦,特别是当您不熟悉星号时,但是一旦您设置了星号,就会有一个持久的数据存储,这(相对来说)很容易查询。您还可以更改存储对象的属性,而无需删除和重新创建它们,因此在用户添加或修改任务时,很容易在DB中添加或修改记录。如果您需要在存储的数据上显示列表或运行任何计算,正确的查询将提取您需要知道的所有信息。
网络上有许多核心数据教程,但最好从苹果的例子开始。
发布于 2012-07-13 02:18:51
首先,+1给哈斯克杰夫和他的建议使用核心数据。这应该是您构建通知规则的持久性方法。
我目前正在开发一个服务器端组件,负责定期通知。从您对重复事件类型的描述来看,UILocalNotification不够灵活,不能只使用repeatInterval属性。
我强烈建议阅读以下几篇文章:
我建议在可能的情况下依赖UILocalNotification的repeatInterval。您可能希望将weeklyRule和dailyRule之类的内容委托给UILocalNotification的重复间隔。
对于每隔一天和每隔一周这样的规则,您可能需要为它们创建自己的时态表达式和规则。
https://stackoverflow.com/questions/11462548
复制相似问题