2016-02-28 143 views
0

只是製作一個基本的遊戲,並使用NSUserDefaults來保存高分。同時調用我需要使用格式爲「最佳時間:%i」的NSString。我在模擬器上運行遊戲,並且完美運行。NSString格式不能在設備上工作,但在模擬器上工作

但是,當我去設備上運行它時,我使用NSString(格式「最佳時間:%i」格式化)的標籤沒有工作沒有出現在標籤中?

這裏是我用來調用保存的最佳時間代碼:

//The previous games best time 

    var highscoreDefaults = NSUserDefaults.standardUserDefaults() 

    if (highscoreDefaults.valueForKey("Highscore") != nil){ 

    theNewTime = highscoreDefaults.valueForKey("Highscore") as! NSInteger! 

    thehighscore.text = NSString(format: "Best Time : %i" , theNewTime) as String 


    } 

// ---------------------

+0

如果'highscoreDefaults.valueForKey(「排行榜」)'做什麼'等於nil'?另外,您應該使用'objectForKey()',而不是'valueForKey()'來測試是否有條目。並且,如果存在,則應該使用'integerForKey()'獲取整型值,而不是'valueForKey()'和'objectForKey()'將其轉換爲'NSInteger'。 –

+0

謝謝我交換了它們,但它仍然有相同的問題,它在模擬器上工作,但不在設備上。很煩人。 –

+0

修改您的問題以顯示您當前的代碼,包括如果「Highscore」的默認值中沒有對象,您將執行哪些操作。 –

回答

0

您可以使用雨燕的串插,你不要從C-格式說明需要的任何高級功能:

thehighscore.text = "Best Time : \(theNewTime)" 
+0

試過這個,但由於某種原因,我得到了同樣的結果。 –

相關問題