【问题标题】:EventKit Predicate ChoicesEventKit 谓词选择
【发布时间】:2011-08-31 00:39:57
【问题描述】:

我正在开发的应用程序会将事件写入用户手机上的日历。我正在考虑在我的应用程序事件之前加上 myapp: 这样的前缀,这样我就可以在事件存储中找到我的事件以显示在 tableview 中。

但是,当我查看 ios eventkit framework 时,似乎唯一可用的谓词是基于开始和结束日期 (– predicateForEventsWithStartDate:endDate:calendars:)。我没看错吧?

我应该只在手机上为我的应用程序创建一个日历,还是有其他方法可以在日期之外识别我的事件?

提前致谢。

【问题讨论】:

    标签: iphone ios calendar eventkit


    【解决方案1】:

    另一种选择是使用索引到事件的本地存储(sqlite、coredata 等...)。每个事件都有事件 ID,您可以通过 eventWithIdentifier 从商店中检索事件。

    不确定您的数据访问模式是什么,但这也允许您在应用程序中快速存储数据,您可以高效地查询(使用强大的谓词和 sql 语法)。您的本地结果可能只返回 eventIds 并在表视图回调中获取该行的 id 并从事件存储中检索。

    只是另一种选择...

    【讨论】:

    • 嘿,这是个好主意,我不知道我能做到这一点。只是为了确保我理解,当我创建一个事件时,我还会捕获事件 ID,然后将其存储在我的核心数据存储中的一个实体中。然后我根据从我的核心数据实体中提取的这些事件 ID 从事件存储中提取?
    • 这就是基本思想。在该方案中,您必须决定谁是数据的主人并担心数据不同步。我建议查询返回 ID,然后从事件存储中获取您显示的数据。您还可以有一个后备策略甚至选项来检测它是否丢失并推送回事件存储(抱歉,对您的应用程序了解不多)。如果是这种情况,您还将数据存储在允许丰富查询的数据库中,但您更喜欢显示来自事件存储的数据。更多的工作,但更强大。您还可以重新填充日历等...
    • 非常感谢,这是一种创新的方法。
    猜你喜欢
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2013-06-04
    • 1970-01-01
    相关资源
    最近更新 更多