【问题标题】:Syncing EKRecurrenceRules with Cloud Service RFC 2445 iCalendar specification RRULE将 EKRecurrenceRules 与云服务 RFC 2445 iCalendar 规范 RRULE 同步
【发布时间】:2012-10-11 11:40:36
【问题描述】:

我正在尝试创建一个基于云的服务来存储重复事件。我选择使用 icalendar RRULE 标准 (RFC2445) 执行此操作,并使用如下通过基于云的服务公开的数据库模式。

EventID
EventName
EventDescripton
Start
End
RecurrenceRule  <-- Store RFC 2445 iCalendar specification RRULE (recurrence)
Active
Deleted
DateCreated
DateLastUpdated

我相信 EKRecurrenceRules 符合 RFC 2445,但是通过存储 RRULE 的字符串表示或 EKRecurrenceRule 的描述可以实现更跨平台的架构。

我能够轻松地在客户端创建EKRecurrenceRule 并从 EKRecurrenceRule 描述属性中提取 RRULE。但是,我的问题是,从云服务中提取时,如何将该描述属性转换回客户端上的 EKRecurrenceRule 对象?似乎愚蠢的 Apple 会公开一个属性来提取符合要求的 RRULE,但不提供任何方法将 RRULE 转换为本机对象。

如果可能,我想避免存储 EKRecurrence 规则的单个组件。

【问题讨论】:

    标签: ios icalendar eventkit rfc2445 rrule


    【解决方案1】:

    你也许可以使用这个库: https://github.com/FabienDiTore/ios-rrule_parser

    创建一个 EKRecurrenceRule。如果你这样做,请告诉我。

    【讨论】:

      【解决方案2】:

      ...从 EKRecurrenceRule 描述属性中提取 RRULE

      这似乎充满了危险。 -[id&lt;NSObject&gt; description] 的文档只保证它返回“一个描述接收器内容的字符串” - EKRecurrenceRule 的实现将来可能不会给出正确的 RRULE,或者可能只是稍微改变到“提取” RRULE 不会工作。 (这可能就是为什么 Apple 没有提供将 RRULE 转换回 EKRecurrenceRule 的任何东西的原因 - 他们并不意味着您首先能够提取和使用 RRULE。)

      在我看来,更好的解决方案是找到或编写一个库或 EKRecurrenceRule 类别,以提供适当的 - (NSString *)rrule 访问器,也许还有相应的 - (id)initWithRRule:(NSString *)rrule 初始化程序。这样,您就可以避免依赖未记录的行为,并确信您可以按照您想要的方式在 RRULE 和 EKRecurrenceRule 实例之间进行转换。

      【讨论】:

        猜你喜欢
        • 2012-10-14
        • 2013-04-10
        • 2019-08-15
        • 2015-08-10
        • 2023-04-09
        • 2011-03-22
        • 1970-01-01
        • 2016-11-12
        • 2021-06-13
        相关资源
        最近更新 更多