0

UILocalNotification を設定するアプリに取り組んでいます。これを使用するのは初めてで、効率的かつ最良の方法で使用するためにいくつかの説明が必要です. 通知の有効期限までのカウントダウンの正しい方法はどれですか? 不足している時間の UILabel をユーザーに表示したいのですが、この UILabel は毎秒更新され、アプリを再度開くとタイマーを表示する必要があります。私はこのようにこれを行いました: アプリを再度開くか、タイマーを表示する必要があるビューをリコールすると、以前に設定した userInfo を持つ 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);
4

1 に答える 1