Как определить в EKEventStore, когда приложение закрыто?

В моем приложении я извлекаю EKEventStore для событий и сохраняю их локально в CoreData в первый раз, когда пользователь запускает приложение. На данный момент я хочу получать события из EventStore только тогда, когда в хранилище событий есть какие-либо изменения.

Я использовал 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
}

person Ashutosh    schedule 31.01.2014    source источник


Ответы (1)


Вы пытались поставить наблюдателя в

- (void)applicationDidEnterBackground:(UIApplication *)application
{

}

Ваш AppDelegate?

person Miralem Cebic    schedule 31.01.2014
comment
Я предполагаю, что это позаботится только тогда, когда мое приложение находится в фоновом режиме и работает, но как насчет того, когда мое приложение даже не работает (даже в фоновом режиме) - person Ashutosh; 01.02.2014
comment
Нет возможности реагировать на новые события, когда ваше приложение неактивно. Вы должны проверять EKEventStore каждый раз, когда запускаете приложение. - person Miralem Cebic; 01.02.2014