アプリにイベントをリストしています。ユーザーはイベントを作成、編集、および削除できます。メソッドではviewDidLoad
、必要なすべてのイベントをフェッチし、それらを配列にプッシュします。期待どおりに動作します。
私が使用するイベントの作成、編集、および削除にはEKEventEditViewController
、EKEventViewController
かなりうまく機能します。コントローラーのデリゲート メソッドで、アレイに必要な変更を加え、ビューをリロードします。
もちろん、ユーザーが別のアプリ(組み込みのカレンダーアプリなど)から変更を加えた場合も、知り、処理したいと思います。だから私は観察しEKEventStoreChangedNotification
ます。その通知から、どのイベントまたはどのアプリからではなく、「変更が発生しました」のみが表示されます。実際に知りたいのは、変更が自分のアプリまたは別のアプリから発生したかどうか、およびどのイベントが変更されたかです。EKEventEditViewControllerDelegate メソッドで (アプリからの) 変更を既に処理しているため、再度処理する必要はありません。
どのオブジェクトが変更されたかわからない場合は、それらすべてをフェッチしてソートする必要があります。
今のところ、カレンダー (開発デバイス) には 5 つのイベントしかありません。もちろん、すべてのイベントを取得して並べ替えるのは問題ではありませんが、ユーザーが 1000 を超えるイベントを持っている場合、おそらく 1 つのイベントの変更だけではやり過ぎです。
私の質問は次のとおりEKEventStoreChangedNotification
です。