1

以前に設定したローカル通知から残り時間を取得する方法があるかどうかを知りたいです。

私がこのようなものを作ったとしましょう:

    //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];

それで、アプリを完全に閉じます。もう一度開いて、通知が開始されるまでの残り時間を示すメッセージを表示したいと思います。

前もって感謝します。

4

2 に答える 2

2

UIApplicationのscheduledLocalNotificationsプロパティを使用して、現在スケジュールされている通知のリストを取得できるはずです。多分これを手に入れて、その時間に計算してみては?

于 2011-05-03T20:37:35.180 に答える
0

以下のメソッドを [self timeRemaning] のように呼び出すと、通知が登録されている場合、名前の変更にかかる秒数が表示されます。これは、登録された 1 つの通知に対してのみ機能します。

-(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;
     }
}
于 2014-07-23T10:58:46.720 に答える