В основном, я используюUint8 не конвертируется в Int (сохранение игры самое лучшее время)
var highscoreDefault = NSUserDefaults.standardUserDefaults()
сохранить высокий балл, который в данном случае является время. Проблема, с которой я сталкиваюсь, заключается в том, что таймер секундомера использует Uint8, и я получаю сообщение об ошибке «Uint8 не конвертируется в Int»
Это приводит меня в бешенство, пытаясь исправить это, и я заключаю, что самый простой способ - преобразуйте значения Uint8 в Int, так что самое быстрое время можно сохранить в игре как высокий балл.
Любая помощь будет оценена, спасибо.
Переменные 'startSeconds' и 'startFraction' находятся в Uint8 .. но переменные 'hseconds' и 'hfrac' должны быть Int для сохранения.
Ошибка происходит на этих линиях:
hseconds = startSeconds
hfrac = startFraction
Здесь соответствующая функция:
func stop() {
hseconds = startSeconds
hfrac = startFraction
if (hseconds < highscoreSec) {
// && (fraction < highscoreFrac)
//highscoreSec = startSeconds
//highscoreFrac = startFraction
highscoreDefault.setValue(highscoreSec, forKey: "seconds")
highscoreDefault.setValue(highscoreFrac, forKey: "frac")
}
highscoreDefault.synchronize()
timer.invalidate()
timer == 0
}
здесь больше кода:
override func viewDidLoad() {
super.viewDidLoad()
var highscoreDefault = NSUserDefaults.standardUserDefaults()
playButton.hidden = true
if (highscoreDefault.objectForKey("seconds") != nil) { highscoreSec = highscoreDefault.valueForKey("seconds")as NSInteger!
}
if (highscoreDefault.objectForKey("frac") != nil) { highscoreFrac = highscoreDefault.valueForKey("frac")as NSInteger!
}
highscoreLabel.text = "(highscoreSec):\(highscoreFrac)"
// Do any additional setup after loading the view.
}
Если вы заметили, некоторые из строки закомментированы как часть процесса отладки.
Я постараюсь, что теперь, благодаря –
я получаю сообщение об ошибке "использование неразрешенного идентификатора" ИНТ" –
I изменил ваш код, чтобы сказать «Int» вместо «int», и никаких ошибок. Сейчас я скомпилирую –