簡體   English   中英

選擇其他日歷時,EKEvent標識符會更改

[英]EKEvent identifier changes when selecting another calendar

我有一個會議策划應用程序,它有自己的sqlite數據庫,並將其自身附加到日歷框架的EKEvent。 我正在使用事件標識符作為會議數據的外鍵。 當用戶在日歷應用程序中更改事件的日歷時,問題就出現了。 標識符更改,我無法知道它已更改,因為它是在我的應用程序之外。 如果有人有任何想法,請告訴我

從iOS 5.0開始,無法確定地唯一標識事件

文檔警告說“如果事件的日歷發生變化,其標識符很可能也會發生變化。”

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

如果-eventWithIdentifier:返回一個非重復的事件,那么你可能會很高興。 否則,解決這兩個問題的最簡單方法可能是在大約同一時間搜索所有日歷中的事件並使用啟發式方法來確定最佳匹配,或者如果沒有匹配項足夠好,則要求用戶選擇相應的事件。

您可能還想檢查在編輯重復事件的單個實例時Google日歷的功能(它可能會創建一個帶有新標識符的事件,並在原始事件的重復信息中添加“漏洞”,這可能會破壞您的啟發式)。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM