높은 점수를 얻으려고합니다. 점수와 높은 점수를 올리고 두 점수를 비교하여 점수가 새로운 최고 점수로 설정되어야하는지 확인합니다. 점수가 음수 일 때는 잘 작동하지만 숫자가 양수이지만 현재의 높은 점수보다 낮거나 높은 점수보다 크면 두 숫자를 합치는 것처럼 보입니다. 그것은 또한 2에서 1을 뺀 것으로 보인다? 무슨 일이 일어나는 지 모르겠습니다. 도와 주셔서 감사합니다!스위프트를 사용하여 최고 기록 저장 및로드
높은 점수보기의 viewDidLoad (뷰의 코드 만) :
override func viewDidLoad() {
//Load Score
let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
var score = defaults.valueForKey("Score")?.integerValue ?? 0
defaults.synchronize()
Score = score
//Load Highscore
let SecondDefaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
var highscore = SecondDefaults.valueForKey("Highscore")?.integerValue ?? 0
SecondDefaults.synchronize()
Highscore = highscore
//Set Score Text
ScoreString = String(Score)
Scorelabel.text = ScoreString
//Update Highscore if Score is bigger
if Score > Highscore {
//Set Highscore to Score
Highscore += Score
//Save Highscore
let SecondDefaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
SecondDefaults.setObject(Highscore, forKey: "Highscore")
SecondDefaults.synchronize()
//Set Highscore Text
HighscoreString = String(Highscore)
HighscoreLabel.text = HighscoreString
NewHighscoreLabel.text = "New Highscore"
}
//Set Highscore Text if Score is smaller
else if Highscore >= Score {
HighscoreString = String(Highscore)
HighscoreLabel.text = HighscoreString
}
}}
(이 그것을 주도 수도 있지만) 그것은 버그가 해결되지 않습니다하지만 오히려 믹싱 및 매칭보다 항상 lowercaseVariableNames''에 충실해야한다 (당신이 사용하는'UppercaseVariableNames' 멤버 변수는?). 여기서'Score'라는 변수와'score'라는 변수가 있습니다. 이것은 문제를 요구하고 있습니다. Swift의 표준은 대문자로 시작하는 유형과 소문자로 시작하는 변수의 이름을 지정하는 것입니다. 유형에 값을 할당 할 수 없기 때문에 실수로 변수의 클래스 이름을 입력 할 수는 없지만 다른 변수에 대해 하나의 변수를 입력 할 수는 있습니다. –