1

CalendarStore APIを使用してタスク (CalTask​​ アイテム) を作成しています。そうすることで、これらの項目が自動的に iCloud に同期されると思います (ユーザーがシステム環境設定でこの設定を行っていると仮定します)。実際、CalendarStoreのドキュメントには次のように書かれています。

Calendar Store データベースには、Calendars スキーマに属するレコードのローカル コピーが格納されます。MobileMe システム設定が Calendars スキーマを同期するように設定されている場合、Calendar Store プログラミング インターフェイスを使用してこれらのレコードに加えた変更も同期されます。

しかし、CalendarStore に項目を作成するだけでは、それらの iCloud 同期が開始されないようです。変更が戻ってくるのを確認できるので、アイテムが適切に CalendarStore に送られていることがわかります ( と を観察CalTasksChangedNotificationCalTasksChangedExternallyNotification、私の変更がそこを通ってきます)。しかし、iCal を実行するまでは、iCloud 同期は行われない。

私のコードで間違っていることは何もないと思います。実際、これは Apple のCalendarItemsサンプル コードで再現できます。タスクとイベントを作成しても、iCal を実行するまで CalendarStore 同期はトリガーされません。

iCloud以前は、これを行うためにSyncServicesを使用していましたが(これについてはこちらの素晴らしい記事)、これはLionとiCloudでは使用されていないと思いました。実際、Apple の SyncServices のドキュメントすら見つかりません。

CalendarStore の iCloud への同期をプログラムでトリガーできることはわかっています。他のアプリがこれを行っているからです (Fantastical さん、あなたのことを見ています)。誰でも私に何か指針を与えることができますか?

同様の 質問がいくつかありますが、それらは iCloud より前のものであり、解決されていないようです。

更新: まだ機能しているように見えますが、Lion では Sync Services が正式に非推奨になっているようです。それに代わるものは本当にないのでしょうか?

4

0 に答える 0