2011-06-13 76 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