繁体   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