以编程方式触发 CalendarStore 与 iCloud 同步?

Programmatically trigger CalendarStore sync with iCloud?

提问人:zpasternack 提问时间:3/25/2012 最后编辑:Communityzpasternack 更新时间:3/26/2012 访问量:632

问:

我正在使用 CalendarStore API 创建任务(CalTask 项目)。我的假设是,通过这样做,这些项目将自动同步到iCloud(假设用户在“系统偏好设置”中进行了此设置)。事实上,CalendarStore 文档是这样说的:

日历存储数据库存储记录的本地副本 属于 Calendars 架构。如果 MobileMe 系统偏好设置 配置为同步日历架构,然后对这些架构进行更改 使用日历存储编程接口的记录也是 同步。

但似乎只是在 CalendarStore 中创建项目并不会触发它们的 iCloud 同步。我知道我的项目正在正确地进入 CalendarStore,因为我看到更改回来了(我观察了 和 ,我的更改正在通过那里)。但在我运行 iCal 之前,不会发生 iCloud 同步。CalTasksChangedNotificationCalTasksChangedExternallyNotification

我不认为我的代码中做错了什么。事实上,您可以使用 Apple 的 CalendarItems 示例代码重现这一点。在运行 iCal 之前,创建任务和事件不会触发 CalendarStore 同步。

在iCloud之前,您使用SyncServices来执行此操作(这方面的好文章),但我有点认为没有用于Lion和iCloud。事实上,我什至找不到 Apple 的 SyncServices 文档。

我知道可以通过编程方式触发 CalendarStore 同步到 iCloud,因为其他应用程序会这样做(我在看着你,Fantastical)。谁能给我任何指示?

有几个类似的问题,但它们是iCloud之前的问题,似乎还没有得到解决。

更新:虽然它似乎仍然有效,但我看到 Sync Services 在 Lion 中已正式弃用。真的没有替代品吗?

macOS Cocoa iCloud 日历商店

评论


答: 暂无答案