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

时间:2012-03-24 19:37:58

标签: macos cocoa icloud calendar-store

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

  

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

但似乎只是在CalendarStore中创建项目不会触发它们的iCloud同步。我知道我的项目正在进入CalendarStore,因为我看到了更改(我观察CalTasksChangedNotificationCalTasksChangedExternallyNotification,我的更改正在进行中)。但是直到我运行iCal,才会发生iCloud同步。

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

Pre-iCloud,你使用SyncServices来做这件事(很好的文章here),但我有点认为这不适用于Lion和iCloud。事实上,我甚至找不到Apple的SyncServices文档。

我知道可以通过编程方式触发CalendarStore同步到iCloud,因为其他应用程序会执行此操作(我正在看着你,Fantastical)。任何人都可以给我任何指示吗?

有一对similar questions,但它们是pre-iCloud,似乎没有得到解决。

更新虽然它似乎仍有效,但我发现Lion中正式弃用了Sync Services。真的没有替代品吗?

0 个答案:

没有答案