EventKit同步问题

use*_*955 1 iphone synchronization ios eventkit ios5

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

除此之外,我发现通过我的应用程序修改任何事件(删除/更新)并且EventKit / EventKitUI不会同步回我的Mac日历.

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

Tre*_*bor 10

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

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

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

  2. 至于删除和更新的日历事件未与Mac同步的问题,您确定在进行修改后在您的实例上调用- (void)commit:EKEventStore

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

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

    假设这些事件被添加到基于云的日历中,这应该具有将您的更改同步到Mac的效果.