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
}
// ---------------------
答
您可以使用雨燕的串插,你不要从C-格式说明需要的任何高级功能:
thehighscore.text = "Best Time : \(theNewTime)"
+0
试过这个,但由于某种原因,我得到了同样的结果。 –
如果'highscoreDefaults.valueForKey(“排行榜”)'做什么'等于nil'?另外,您应该使用'objectForKey()',而不是'valueForKey()'来测试是否有条目。并且,如果存在,则应该使用'integerForKey()'获取整型值,而不是'valueForKey()'和'objectForKey()'将其转换为'NSInteger'。 –
谢谢我交换了它们,但它仍然有相同的问题,它在模拟器上工作,但不在设备上。很烦人。 –
修改您的问题以显示您当前的代码,包括如果“Highscore”的默认值中没有对象,您将执行哪些操作。 –