Я работаю над приложением, которое устанавливает UILocalNotification. Это первый раз, когда я использую его, и я хотел бы получить некоторые объяснения, чтобы использовать его эффективно и наилучшим образом. Каков лучший способ обратного отсчета до истечения срока действия уведомления? Я хотел бы показать пользователю UILabel с отсутствующим временем, этот UILabel обновляется каждую секунду, и когда я снова открываю свое приложение, он должен показывать таймер. Я сделал это следующим образом: когда я снова открываю свое приложение или вспоминаю представление, которое должно показывать таймер, я проверяю, есть ли UILocalNotification с пользовательской информацией, которую я установил ранее, затем я вычитаю его NSDate текущее время, поэтому Я понимаю разницу и обновляю UILabel. Я знаю, что это показывает время в секундах, но если эта процедура хороша, я переведу ее во время.
Есть ли лучший способ сделать это?
Вот мой код:
UILocalNotification *countDownNotificationSetted;
NSArray *scheduledNotificationArray = [[UIApplication sharedApplication] scheduledLocalNotifications];
for (int i = 0; i<[scheduledNotificationArray count]; i++)
if ([[[[scheduledNotificationArray objectAtIndex:i] userInfo] objectForKey:@"ID"] isEqualToString:@"ParkNotification"]) {
countDownNotificationSetted = [scheduledNotificationArray objectAtIndex:i];
break;
}
NSDate *expringDate = [countDownNotificationSetted fireDate];
NSTimeInterval timeLeftToNotification = [expringDate timeIntervalSinceNow];
if(timeLeftToNotification == 0){
[countDownTimer invalidate];
}
datePicker.countDownDuration = timeLeftToNotification;
_countDownLabel.text = [NSString stringWithFormat:@"%.0f", timeLeftToNotification];
NSLog(@"%.0f", timeLeftToNotification);