В моем приложении я собираю EKEventStore для событий и сохраняю их локально в CoreData в первый раз, когда пользователь запускает приложение. Для этого момента я хочу только получать события из EventStore, когда есть какие-либо изменения в хранилище событий.Как обнаружить в EKEventStore, когда приложение закрыто?
Я использовал EKEventStoreChangedNotification, и он отлично работает, когда когда-либо добавляю событие в календарь, пока мое приложение находится в фоновом режиме. Но это не работает, когда приложение закрыто.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.eventStore = [[EKEventStore alloc]init];
[self.eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (granted) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(storeChanged:)
name:EKEventStoreChangedNotification
object:self.eventStore];
}
}];
return YES;
}
-(void)storeChanged:(NSNotification *)notif {
// Update core data
}
Я думаю, что это будет заботиться только тогда, когда мое приложение находится в фоновом режиме и запущено, но как насчет того, когда мое приложение даже не работает (даже не в фоновом режиме) – Ashutosh
Нет никакой реакции на новые события, когда ваше приложение не является активный. Вам нужно проверять EKEventStore каждый раз при запуске приложения. –