gpt4 book ai didi

iphone - Reminders.app 双向同步逻辑

转载 作者:行者123 更新时间:2023-12-03 16:22:10 25 4
gpt4 key购买 nike

我希望我的应用程序与 Reminders.app 同步。 (我的应用程序利用核心数据)

我已经完成了一个原型(prototype)并且它可以工作,但是有一些我无法思考的错误。

现在我的同步算法如下所示:

1.监听EKEventStoreChangedNotification通知并在调用同步时

2.首先,我会迭代本地日历,如果 Reminders.app 中不存在它们,我会添加它们。

这是一个非常糟糕的设计,因为如果我删除 Reminders.app 中的日历并将其添加到我的应用程序中,它会再次添加到 Reminders.app 中。了解日历是否已被删除会更好。

3.然后,我迭代 Reminders.app 中的每个日历,如果我的本地记录中不存在此日历,我会将它们添加到我的 local.app 中。如果它确实存在,那么我将更新其标题。

4.我正在从我的 EKEventStore 获取所有提醒

5.我正在迭代所有本地提醒,如果 Reminders.app 中不存在它们,我将添加它们。

再次出现删除问题 - 与日历删除相同的情况。

6.我正在迭代所有 Reminders.app 提醒,如果它们不存在于我的应用程序中,我会将它们添加到我的 local.app 中。如果它们确实存在,我将更新所有值。

一切都很好,直到我在删除时遇到了这个问题。我看到 EKObject 有一些可以帮助我的方法,但我无法弄清楚它们。我该如何正确执行此操作以及我可以做些什么来优化?

最佳答案

您有更改日期属性或类似的属性吗?这会让事情变得更容易。

理想情况下,您可以将删除校准的信息保存在某处。然后,在同步时,您可以检查日历(您要添加的)最近是否被删除。如果是这种情况,您可以删除本地日历并删除要删除的信息。因此,除非您删除某个项目并且该项目已成功同步到对应项目,否则该列表将保持干净。

或者,如果您想按日期执行此操作,可以比较 lastSyncedDatecalendarModifiedDate (仅两个示例)。但这并不是一个很好的解决方案。您必须考虑时区、时间变化以及用户与时间的交互,例如。设置已更改。

关于iphone - Reminders.app 双向同步逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16508307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com