2016-12-26 4 views
0

Мне нужно представить UILocalNotification после удаления того же номера на cancelLocalNotification:. Проблема заключается в том, что удаление выполняется медленно, чем запуск нового, и удаляет только добавленное уведомление.Как выполнить метод после завершения UILocalNotification cancelLocalNotification: in iOS 8 или 9

Как я могу определить, что UILocalNotification cancelLocalNotification: был заполнен?

ответ

0

Если вы хотите позвонить по уведомлению с определенным интервалом таймера или позвонить по завершении первого, то местное уведомление оно имеет repeatInterval. Значение и стоимость должны быть NSCalendarUnit. И повторите с определенным таймером.

В противном случае второго варианта ниже метода делегата всегда называет

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{ 
    // I recieved a notification 
} 

Когда уведомление прибудет в блоке

вы можете удалить все локальные уведомления и создать новый с датой пожара должен быть

localNotification.fireDate = [NSDate date]; 
0

Пробуй проверить,

[[UIApplicatio n sharedApplication] scheduleLocalNotifications]

Это вернет массив запланированных уведомлений.

Вы можете проверить количество массивов или массив NSLog и получить информацию, если локальное уведомление отменено или нет.

+0

Уведомление было найдено. scheduleLocalNotifications возвращает уведомления в списке ожидания. Это не мое дело. –

2

Вы можете немного подождать, после вызова UILocalNotification cancelLocalNotification: и зарегистрировать снова для нового UILocalNotification

Что-то вроде этого

[[UIApplication sharedApplication] cancelLocalNotification:someNotification]; 
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ 
/* register UILocalNotification again here after delay */ 

});