2011-06-13 46 views
0

新增iOS SDK和Objective-C,并且只是对NSTimeInterval有个疑问。连续显示NSTimeInterval

我有一个非常简单的游戏,我想显示游戏已经玩了多久(这样我可以节省一个最佳时间)。现在

,当然如果我设置标签与类似这样的文字:

NSTimeInterval elapsedTime = [startDate timeIntervalSinceNow]; 
theLabel.text = [NSString stringWithFormat:@"%.2f", -elapsedTime]; 

标签的文本将是它会在多长时间过去了,因为比赛一开始,这是0秒。

我可以通过什么方式使elapsedTime对象“在后台运行”,以便玩家可以选择他/她在任何时间玩过多长时间?

回答

1

看看NSTimer类是为了在预设时间内安排一个计时器并更新回调中的标签。

-(void)viewDidLoad { 
    [super viewDidLoad]; 

    // Add timer at 60 frames a second 
    timer = [NSTimer scheduledTimerWithInterval:1.0/60.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats: YES]; 
} 

-(void) targetMethod: NSTimer * theTimer { 
... update label 
} 
+0

所以我必须设置一个计时器,以60fps更新标签?听起来它会起作用,但是不是没有必要让任务始终如此运行吗? 虽然同时使用它 - 让我们看看别人是否有话要说=) – Marcus 2011-06-13 09:57:48

+0

如果你想实时更新,那么你没有多少选择?!如果你每次进入统计页面时只需要一个静态值,那么就在NSUserDefaults中添加一个值,并在每次用户开始/结束游戏时更新它。 – 2011-06-13 10:18:48

+0

我明白了 - 非常感谢你的努力;似乎像一个魅力工作=) – Marcus 2011-06-13 10:22:16