Наблюдение внешних изменений в календарной базе данных

В то время как Ваше приложение работает, для другого процесса или приложения возможно изменить базу данных Calendar. Если Ваше приложение выбирает календарные события или напоминания, необходимо зарегистрироваться, чтобы быть уведомленными об изменениях в базе данных Calendar. Путем выполнения так, Вы гарантируете, что информация о календаре и напоминании, которая Вы выводите на экран пользователю, является текущей.

Регистрация для уведомлений

EKEventStore возразите отправляет EKEventStoreChangedNotification уведомление каждый раз, когда это обнаруживает изменения в базе данных Calendar. Регистр для этого уведомления, если Ваше приложение обрабатывает данные напоминания или событие.

Следующие кодовые регистры для EKEventStoreChangedNotification уведомление, как показано в Перечислении 5-1.

Перечисление 5-1  EKEventStoreChangedNotification уведомление

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(storeChanged:)
                                             name:EKEventStoreChangedNotification
                                           object:eventStore];

Ответ на уведомления

Когда Вы получаете EKEventStoreChangedNotification уведомление, возможно, что возражает, что Вы выбрали — такой как EKEvent, EKReminder, или EKCalendar, среди других — изменились. Эффект этих изменений зависит от того, было ли событие добавлено, изменено или удалено.

Поскольку Ваши локальные данные часто лишаются законной силы или неполные, когда изменение происходит в базе данных Calendar, необходимо повторно выбрать диапазон текущей даты событий каждый раз, когда Вы получаете EKEventStoreChangedNotification уведомление. Если Вы в настоящее время изменяете событие, и Вы не хотите повторно выбирать его, если это не абсолютно необходимо для этого, что можно вызвать refresh метод на событии. Если возвращается метод YES, можно продолжать использовать событие; иначе, необходимо повторно выбрать его.