首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储UILocalNotifications以便于处理

存储UILocalNotifications以便于处理
EN

Stack Overflow用户
提问于 2012-07-13 00:23:40
回答 2查看 234关注 0票数 1

我正在开发一个应用程序,它根据用户设置的首选项提醒用户操作。它们可以设置开始日期和结束日期(结束日期是可选的)。然后他们可以设置频率:

  • 每日
  • 每周
  • 每1-9天
  • 每1-9周
  • 在一个月的某些日子
  • 具体日期

现在,我需要能够检索即将出现的和过去的提醒列表,以便在UITableView中显示。如果用户忽略了通知(不要删除应用程序中的提醒),那么我需要在以后的数学计算中跟踪这一点。

首先,我认为UITableView只需查看提醒集,并确定在任何一天都会发出哪些通知。

这将需要大量的日期计算,并且不允许我知道用户是否忽略了提醒。

我的下一个(也是当前的)想法是存储一个数据库表(如下所示),并在未来一个月内输入提醒。任何未被设置为响应的行都意味着它们忽略了它。这也会使UITableView变得非常简单。

有什么更好的方法吗?我应该提前多长时间创建数据库行?如果他们更改提醒,我可能会调用DELETE对行并重新输入它们,这是否可以有很高的id数字?

代码语言:javascript
复制
reminderLogs
-------------
id
reminderID
actionReceived
timestampShould
timestampTaken
comments
EN

回答 2

Stack Overflow用户

发布于 2012-07-13 02:05:03

这听起来像是一个使用核心数据的好地方。设置星号可能会很痛苦,特别是当您不熟悉星号时,但是一旦您设置了星号,就会有一个持久的数据存储,这(相对来说)很容易查询。您还可以更改存储对象的属性,而无需删除和重新创建它们,因此在用户添加或修改任务时,很容易在DB中添加或修改记录。如果您需要在存储的数据上显示列表或运行任何计算,正确的查询将提取您需要知道的所有信息。

网络上有许多核心数据教程,但最好从苹果的例子开始。

票数 1
EN

Stack Overflow用户

发布于 2012-07-13 02:18:51

首先,+1给哈斯克杰夫和他的建议使用核心数据。这应该是您构建通知规则的持久性方法。

我目前正在开发一个服务器端组件,负责定期通知。从您对重复事件类型的描述来看,UILocalNotification不够灵活,不能只使用repeatInterval属性。

我强烈建议阅读以下几篇文章:

  1. 马丁·福勒( Martin )的重复事件模式。
  2. IceCube是在Ruby中开发的用于处理反复出现的事件和时态表达式的事件库。它应该给您一个好的想法,如何实现您的对象图。
  3. 关于构建iCal友好DB架构的堆栈溢出主题。

我建议在可能的情况下依赖UILocalNotification的repeatInterval。您可能希望将weeklyRule和dailyRule之类的内容委托给UILocalNotification的重复间隔。

对于每隔一天和每隔一周这样的规则,您可能需要为它们创建自己的时态表达式和规则。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11462548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档