iPhone - получите оставшееся время от UILocalNotification - PullRequest
1 голос
/ 04 мая 2011

Я хочу знать, есть ли способ получить оставшееся время из ранее установленного локального уведомления.

Допустим, я делаю что-то вроде этого:

    //Creating Notification
    UILocalNotification *localNotif = [[UILocalNotification alloc] init];
    localNotif.fireDate = someTime;
    localNotif.alertBody = @"Your parking time will expire in 10 mins";
    localNotif.alertAction = @"View";
    localNotif.soundName = UILocalNotificationDefaultSoundName;
    localNotif.applicationIconBadgeNumber = 1;

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
    [localNotif release];

Итак, я полностью закрываю свое приложение. Я снова открываю его и хочу показать какое-то сообщение о том, сколько времени осталось до запуска уведомления.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 04 мая 2011

Предполагается, что вы сможете получить список текущих запланированных уведомлений с помощью свойства UIApplication scheduleLocalNotifications. Может быть, получить это и сделать математику в срок?

0 голосов
/ 23 июля 2014

Когда вы вызываете метод ниже, как [self timeRemaning]; сколько секунд вы переименуете, если будет зарегистрировано какое-либо уведомление. Это будет работать только для одного зарегистрированного уведомления.

-(int)timeRemaning{
    NSArray *checkNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
     if (![checkNotifications count] == 0) {
    UILocalNotification *localNotification = [checkNotifications objectAtIndex:0];
    NSString*   notifdate=[localNotification.fireDate description];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss ZZ"];
    NSCalendar *c = [NSCalendar currentCalendar];
    NSDate *d1 = [NSDate date];
    NSDate *d2 = [dateFormatter dateFromString:notifdate];
    NSDateComponents *components = [c components:NSSecondCalendarUnit fromDate:d1 toDate:d2 options:0];
    NSInteger diff = components.second;
         int temp = diff;
    return temp;

     }else{
         return 0;
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...