xcode - 有没有办法在标签中表示UILocalNotification?

时间:2014-06-14 10:33:42

标签: ios xcode timer

在我的游戏中,我有一个NSTimer,当点击一个按钮时,计时器从10分钟倒计时到0.同时点击按钮会触发UILocalNotification,所以如果用户关闭应用程序,它将在10分钟达到0时发出消息。

我的问题是,如果用户关闭应用程序,并在10分钟或更改视图之前打开它,标签就无法跟踪时间!

所以我的问题是,即使应用关闭/更改视图并且能够在标签中显示此计时器,我将如何继续倒数计时器。

这是我的计时器代码:

- (IBAction)startTimer {

mainInt = 600;

timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(countDown) userInfo:nil repeats:YES];

}

- (void)countDown {
mainInt -= 1;
int seconds = mainInt % 60;
int minutes = (mainInt - seconds) / 60;
timerLabel.text = [NSString stringWithFormat:@"%d:%.2d", minutes, seconds];
if (mainInt == 0) {
    [timer invalidate];
}
}

设置UILocalNotification的代码:

- (IBAction)startTime {
UILocalNotification * theNotification = [[UILocalNotification alloc] init];
theNotification.alertBody = @"Alert text";
theNotification.alertAction = @"Ok";
theNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:600];

[[UIApplication sharedApplication] scheduleLocalNotification:theNotification];
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

当您的应用程序关闭或进入后台时,您无法保持NSTimer正常运行。

在应用程序启动期间,您可以查找计划的本地通知。如果存在,您可以询问通知的触发时间(炒作),并将其与设备时间进行比较,以设置您希望在标签中显示的新计数器值。