2012-06-27 125 views
1

在我的應用程序中,我使用EventKit API訪問設備上的日曆,並在我的視圖中顯示它們。但是,在使用網絡日曆時,我懷疑EKEventStore只會在查詢時返回某種緩存/本地事件列表,而不是重新加載日曆並返回實際/最新內容。
當本機日曆應用程序啓動時,應用程序將刷新/重新加載所有日曆,同步任何網絡共享日曆。回到我的應用程序現在還會顯示新同步的事件。EventKit同步問題

除此之外,我發現通過我的應用程序和EventKit/EventKitUI修改任何事件(刪除/更新)將不會同步回e。 G。我的Mac日曆。

長話短說:有沒有辦法強制在EventKit/iOS SDK中與網絡共享日曆同步?

+0

您是否解決了這個問題?我也遇到過這種情況。它似乎最終同步,但可能需要幾天時間。正如你所說,本機iOS日曆應用程序將強制同步,所以它看起來有些特別。 –

+0

不幸的是我到目前爲止沒有提出任何解決方案。 – user826955

回答

10
  1. 可以使用- (void)refreshSourcesIfNecessary方法的EKEventStore實例來:

    ...從遠程源獲取新數據,如果本地數據是過時的。

    這將通過獲取最新的遠程數據來強制更新本地日曆存儲。我有一種感覺,這是本機iOS日曆應用程序用來提示更新的方法。

  2. 至於與刪除和更新日曆事件不同步到您的Mac的問題,你確定你在你做了修改後在你的EKEventStore實例上調用- (void)commit:

    另外,EKEventStore中還有一些方法可供選擇,用於保存和刪除日曆和事件,這些日曆和事件還提供可立即提交更改的提交參數。我會張貼鏈接,但作爲新用戶,我只能使用兩個超鏈接。

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

    假設這些事件被添加到基於雲的日曆,這應該有同步更改到Mac的效果。