0
私は最高のスコアを持つスプライトキットゲームを持っています。それはNSUserのデフォルトを使用しています。しかし、私は最高得点2を得て、それから私は完全にアプリケーションを閉じ、それを開いてそれは私の最高得点2を表示し、スコアとして1つを取得します。それは2のままです。しかし、私は再びアプリケーションを閉じて、それを開く、それは最高得点1を示しています。なぜこれを行うのですか?これは私のコードです。 if条件は機能しませんか?注:これはハイスコアコードに絞られています。私の最高得点は引き続き上下しています。 Swift SpriteKit
import SpriteKit
//In the DidMoveToView function
if let Highscore1 = defaults.stringForKey("Highscore"){
HighScoreLabel.text = "HIGHSCORE: \(Highscore1)"
}
//In the touches began func
//Making what happens when the User Fails and a new highscore is achieved
if Score > highscore {
defaults.setObject("\(Score)", forKey: "Highscore")
}
問題は、あなたがNSUserDefaults
からハイスコアを読み、HighScoreLabel
でそれを見せているで事前に
iOS8でこれを行う必要がある場合は思い出せませんが、ちょうどその場合、どこからでも呼ばれて同期されていますか?おそらくsetObjectの直後に追加して、何が起こるかを見てみましょう。 –