2011-11-15 41 views
0

我有一個會議規劃程序應用程序,它具有自己的sqlite數據庫並將其自身從日曆框架附加到EKEvent。我將事件標識符用作會議數據的外鍵。當用戶更改日曆應用程序中的事件日曆時,問題就出現了。標識符發生變化,我無法知道它是在我的應用程序之外進行更改的。 請讓我知道如果任何人有任何想法選擇其他日曆時EKEvent標識符發生更改

+0

我面對的同樣的問題.... – Maulik

回答

1

的的iOS 5.0的就沒有辦法來唯一地標識確切的事件

1

的文件警告說,「如果一個事件改變了日曆,其標識最有可能也會改變。「

另一個問題是重複事件的所有實例都具有相同的標識符; -[EKEventStore eventWithIdentifier:]似乎返回第一例。 (我甚至看到了帶有零標識符的事件;我不記得確切原因是什麼)。

如果-eventWithIdentifier:返回非重複事件,那麼您可能很好。否則,最簡單的方法就是在大約同一時間搜索所有日曆中的事件,並使用啓發式方法確定最佳匹配,或者如果沒有任何匹配足夠好,則要求用戶選擇相應的事件。

您可能還想要檢查Google日曆在編輯重複事件的單個實例時的功能(它可能會創建具有新標識符的事件並在原始事件的重複信息中添加一個「洞」,這可能會中斷你的啓發)。

0

我現在面臨着這個問題,試圖保持與應用程序的內部數據庫同步的EventStore,我的解決方案是在應用程序內部的EKEvents和事件之間進行映射,如果我發現它匹配但是所有與EKEvents不匹配的事件將被刪除,並且所有不匹配的EKEvent都將被添加,這樣做也會在同步過程中添加剛被修改的EKEvent。