просто делает базовую игру и использует NSUserDefaults, чтобы сохранить высокий балл. при вызове мне нужно было использовать NSString с форматом «Best Time:% i». Я проиграл игру на симуляторе, и она отлично работала.Формат NSString не работает на устройстве, но работает на симуляторе
Однако, когда я пошел запускать его на устройстве, ярлык, который я отформатировал с использованием NSString (формат «Best Time:% 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
}
// ---------------------
Что делать, если 'highscoreDefaults.valueForKey («Рекорд»)' 'делает равное nil'? Кроме того, вы должны использовать 'objectForKey()', а не 'valueForKey()', чтобы проверить, есть ли запись. И, если есть, вы должны использовать 'integerForKey()' get для целочисленного значения, а не 'valueForKey()' и 'objectForKey()' cast to 'NSInteger'. –
Спасибо, что я поменял их, но все равно имею ту же проблему, что и на симуляторе, но не на устройстве. Очень надоедливый. –
Редактируйте свой вопрос, чтобы показать свой текущий код, в том числе и то, что вы делаете, если в настройках по умолчанию для «Рекорда» нет объектов. –