NSString格式不能在设备上工作,但在模拟器上工作

问题描述:

只是制作一个基本的游戏,并使用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”的默认值中没有对象,您将执行哪些操作。 –

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

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

试过这个,但由于某种原因,我得到了同样的结果。 –