2011-11-15 15 views
0

独自のsqliteデータベースを持ち、カレンダーフレームワークからEKEventに自分自身を接続するミーティングプランナーアプリがあります。イベントIDを会議データの外部キーとして使用しています。この問題は、ユーザーがカレンダーアプリケーションでイベントのカレンダーを変更したときに発生します。識別子が変更され、アプリの外で作られたので変更されたことを知る方法がありません。 一意のドキュメントは、イベントの変更のカレンダーもしその識別子最も可能性が高い」と警告し、確実別のカレンダーを選択すると、EKEvent IDが変更されます。

+0

同じ問題に直面しています.... – Maulik

答えて

1

を持っている場合は私に知らせてください変更されます。

もう1つの問題は、繰り返しイベントのすべてのインスタンスが同じ識別子を持つことです。 -[EKEventStore eventWithIdentifier:]が最初のインスタンスを返すようです。 (私は識別子が無制限のイベントも見たことがありますが、正確な原因が何であるか覚えていません)

-eventWithIdentifier:が繰り返されないイベントを返す場合は、おそらくお勧めです。それ以外の場合は、両方の場合の最も簡単な方法は、ほぼすべてのカレンダーでほぼ同時にイベントを検索し、ヒューリスティックを使用して最適な一致を判断するか、一致するものが1つもない場合に対応するイベントを選択するようユーザーに求めます。

繰り返しイベントの1つのインスタンスを編集するときにGoogleカレンダーが行うことを確認することもできます(新しい識別子でイベントを作成し、元のイベントの繰り返し情報に「穴」を追加する可能性がありますヒューリスティック)。

1

でイベントを特定する方法がないのiOS 5.0のよう誰もが任意のアイデア

0

私はこの問題に直面しています。アプリケーションの内部DBとEventStoreを同期させようとしています。私の解決策は、EKEventsとイベントをアプリケーション内でマッピングすることです。 EKEventsと一致しないイベントは削除され、一致のないすべてのEKEventが追加されます。これもまた、変更中のEKEventsが同期中に追加されます。

関連する問題