[英]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.