EventKit同步问题

时间:2012-06-27 14:57:33

标签: iphone ios ios5 synchronization eventkit

在我的应用中,我使用EventKit API访问设备上的日历,并在我的视图中显示它们。但是,在使用网络日历时,我怀疑EKEventStore只会在查询时返回某种缓存/本地事件列表,而不是重新加载日历并返回实际/最新内容。
当启动本机日历应用程序时,应用程序将刷新/重新加载所有日历,同步任何网络共享日历。现在回到我的应用程序也会显示新同步的事件。

除此之外,我发现通过我的应用和EventKit / EventKitUI修改任何事件(删除/更新)都不会同步回e。 G。我的Mac日历。

简而言之:有没有办法强制与EventKit / iOS SDK中的网络共享日历同步?

1 个答案:

答案 0 :(得分:10)

  1. 您可以使用EKEventStore实例的- (void)refreshSourcesIfNecessary方法:

      

    ...如果本地数据已过期,则从远程来源提取新数据。

    这将通过获取最新的远程数据来强制更新本地日历存储。我有一种感觉,这是本机iOS日历应用程序用于提示更新的方法。

  2. 对于未与Mac同步的已删除和更新日历活动的问题,您确定在进行修改后在EKEventStore实例上致电- (void)commit:了吗?

    或者,EKEventStore中有一些方法可用于保存和删除日历和事件,这些日历和事件也提供可立即提交更改的提交参数。我会发布链接,但作为一个新用户,我只能使用两个超链接。

      

    - (void)saveEvent:span:commit:error:
      - (void)removeEvent:span:commit:error:

    假设这些事件被添加到基于云的日历中,这应该会使您的更改与Mac同步。