[英]Uint8 is not convertible to Int ( saving a game best time )
基本上,我正在使用
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.
}
如果您注意到了,则在调试过程中会将某些行注释掉。
试过这个吗?
let hseconds = Int(startSeconds)
let hfrac = Int(startFraction)
编辑:变量名
这就像一个魅力:
let a : UInt8 = 20
var b : Int = 0
b = Int(a)
println(b)
// Prints "20"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.