我有一个会议计划应用程序,它有自己的 sqlite 数据库,并将其附加到日历框架中的 EKEvent。我使用事件标识符作为我的会议数据的外键。当用户在日历应用程序中更改事件的日历时,问题就出现了。标识符发生了变化,我无法知道它发生了变化,因为它是在我的应用程序之外创建的。如果有人有任何想法,请告诉我
问问题
1126 次
3 回答
1
从 iOS 5.0 开始,无法唯一确定地识别事件
于 2012-04-24T19:20:42.730 回答
1
文档警告说:“如果事件的日历发生变化,它的标识符很可能也会发生变化。”
另一个问题是重复事件的所有实例都具有相同的标识符。-[EKEventStore eventWithIdentifier:]
似乎返回第一个实例。(我什至见过带有 nil 标识符的事件;我不记得确切的原因是什么。)
如果-eventWithIdentifier:
返回非重复事件,那么你可能很高兴。否则,解决这两个问题的最简单方法可能是同时在所有日历中搜索事件,并使用启发式方法来确定最佳匹配,或者如果没有一个匹配足够好,则要求用户选择相应的事件。
当您编辑重复事件的单个实例时,您可能还想检查 Google 日历的作用(它可能会创建一个具有新标识符的事件并在原始事件的重复信息中添加一个“漏洞”,这可能会破坏您的启发式)。
于 2012-04-24T19:55:17.467 回答
0
我现在正面临这个问题,试图在我的应用程序上保持 EventStore 与内部数据库的同步,我的解决方案是在 EKEvents 和应用程序内的事件之间进行映射,如果我发现匹配它没关系,但所有事件不'不匹配的 EKEvents 将被删除,所有不匹配的 EKEvents 将被添加,这样做也将在同步期间添加刚刚被修改的 EKEvents。
于 2013-12-04T17:35:04.077 回答