0

我正在创建一个游戏,当应用程序在后台或未运行时,用户将获得奖励积分。如果应用程序完全关闭,他们仍然应该获得积分。目前我正在使用 NSTimer 执行此操作,但是我已经阅读了计时器无法在后台执行的所有内容。这是我所拥有的以及我应该如何解决它:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];
    [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];
    timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(score) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
}

-(void) score{
    score++;
    [[NSUserDefaults standardUserDefaults] setInteger:score forKey:@"score"];
}
4

1 回答 1

1

applicationDidEnterBackground您可以在方法中使用 NSUserDefault 设置“结束时间” 。在applicationDidBecomeActive您获得自“结束时间”以来的经过时间,并从该经过时间设置您的分数。

于 2016-03-21T15:40:23.927 回答