Программно вызвать синхронизацию CalendarStore с iCloud? - PullRequest
1 голос
/ 24 марта 2012

Я использую CalendarStore API для создания задач (элементы CalTask). Я предполагаю, что при этом эти элементы будут автоматически синхронизироваться с iCloud (при условии, что у пользователя есть эта настройка в Системных настройках). На самом деле, CalendarStore документы говорят:

База данных магазина Календаря хранит локальные копии записей принадлежность к схеме Календари. Если системные настройки MobileMe настроен для синхронизации схемы Календари, а затем ваши изменения в эти записи, используя интерфейс программирования магазина календаря, также синхронизируется.

Но, похоже, простое создание элементов в CalendarStore не вызывает синхронизацию их с iCloud. Я знаю, что мои предметы правильно поступают в CalendarStore, потому что я вижу, что изменения возвращаются (я наблюдаю CalTasksChangedNotification и CalTasksChangedExternallyNotification, и мои изменения проходят через это). Но пока я не запустил iCal, синхронизация iCloud не происходит.

Я не думаю, что я что-то не так делаю в своем коде. Фактически, вы можете воспроизвести это с помощью образца кода Apple CalendarItems . Создание задач и событий не приведет к синхронизации CalendarStore, пока вы не запустите iCal.

Предварительно iCloud, вы использовали SyncServices для этого (хорошая статья здесь об этом), но я вроде думал, что это не использовалось с Lion и iCloud. На самом деле, я даже не могу найти документы Apple по SyncServices.

Я знаю, что можно программно запускать синхронизацию CalendarStore с iCloud, потому что это делают другие приложения (я смотрю на тебя, Фантастика). Кто-нибудь может дать мне какие-нибудь указатели?

Есть пара похожих вопросов , но они предварительно iCloud и, похоже, не были решены.

Обновление: Хотя кажется, что оно все еще работает, я вижу, что Sync Services официально объявлен устаревшим в Lion. Неужели нет замены?

...