我正在使用CalendarStore API创建任务(CalTask 项目)。我的假设是,通过这样做,这些项目将自动同步到 iCloud(假设用户在系统偏好设置中进行了此设置)。事实上,CalendarStore文档说:
日历存储数据库存储属于日历模式的记录的本地副本。如果 MobileMe 系统首选项配置为同步日历架构,那么您使用日历商店编程接口对这些记录所做的更改也会同步。
但似乎只是在 CalendarStore 中创建项目并不会触发它们的 iCloud 同步。我知道我的项目正确地进入 CalendarStore,因为我看到更改回来了(我观察到CalTasksChangedNotification
和CalTasksChangedExternallyNotification
,并且我的更改正在通过那里)。但在我运行 iCal 之前,不会发生 iCloud 同步。
我认为我的代码没有做错任何事情。事实上,您可以使用 Apple 的CalendarItems示例代码重现这一点。在您运行 iCal 之前,创建任务和事件不会触发 CalendarStore 同步。
Pre-iCloud,您使用 SyncServices 来执行此操作(关于此的好文章),但我有点认为这不适用于 Lion 和 iCloud。事实上,我什至找不到 Apple 的 SyncServices 文档。
我知道可以以编程方式触发 CalendarStore 同步到 iCloud,因为其他应用程序会这样做(我在看着你,Fantastical)。任何人都可以给我任何指示吗?
有几个类似的 问题,但它们是 iCloud 之前的问题,似乎还没有解决。
更新: 虽然它似乎仍然有效,但我看到同步服务在 Lion 中已正式弃用。真的没有替代品吗?