簡體   English   中英

Uint8不能轉換為Int(節省游戲最佳時間)

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM