【问题标题】:Object type to store repeating calendar events with Core Data使用 Core Data 存储重复日历事件的对象类型
【发布时间】:2013-01-12 23:57:42
【问题描述】:

我正在创建一个基于提醒的应用程序,例如 iPhone 附带的简单闹钟。我正在使用 Core Data 并且有一个具有 NSDate 属性的警报实体,用于用户安排警报应该响起的时间。我还希望能够安排像闹钟这样的重复事件。我想知道这样做的好方法是什么?我知道如果事件在 NSCalendarUnit 之后的某些事件上重复,您可以设置重复间隔。但没有重复间隔仅适用于工作日、每隔一天或周一、周三、周五等。

到目前为止,我唯一的解决方案是创建另一个具有 Sun-Sat 字符串表示形式的简单实体。每个警报实体都有这些 DaysOfTheWeekEntities 的 NSSet。然后,当我想为警报安排 UILocalNotification 时,我会在具有其原始创建日期的数据库中查找该警报,从 DaysOfTheWeek 属性计算下个月的下一个重复警报。

我不确定是否有更好的方法来做到这一点。谢谢!

【问题讨论】:

    标签: iphone core-data


    【解决方案1】:

    一个“智能”方案是在 unix 系统上使用 cron 实用程序。

    来自man crontab

    时间和日期字段是:

        field      allowed values
        -----      --------------
        minute         0-59
        hour       0-23
        day of month   1-31
        month      1-12 (or names, see below)
        day of week    0-7 (0 or 7 is Sun, or use names)
    
       A field may be an asterisk (*), which always stands for "first-last".
    
       Ranges of numbers are allowed.  Ranges are two numbers separated with a
       hyphen.    The specified range is inclusive.  For example,  8-11  for  an
       "hours" entry specifies execution at hours 8, 9, 10 and 11.
    
       Lists are allowed.  A list is a set of numbers (or ranges) separated by
       commas.    Examples: "1,2,5,9", "0-4,8-12".
    
       Step values can be used in conjunction with ranges.  Following a    range
       with  "<number>"    specifies  skips  of  the  number's value through the
       range.  For example, "0-23/2" can be used in the hours field to specify
       command    execution every other hour (the alternative in the V7 standard
       is "0,2,4,6,8,10,12,14,16,18,20,22").  Steps are also  permitted    after
       an asterisk, so if you want to say "every two hours", just use "*/2".
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-08
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多