2014-01-31 2 views
0

В моем приложении я собираю 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 
} 

ответ

0

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

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

} 

Ваш AppDelegate?

+0

Я думаю, что это будет заботиться только тогда, когда мое приложение находится в фоновом режиме и запущено, но как насчет того, когда мое приложение даже не работает (даже не в фоновом режиме) – Ashutosh

+1

Нет никакой реакции на новые события, когда ваше приложение не является активный. Вам нужно проверять EKEventStore каждый раз при запуске приложения. –

Смежные вопросы