【发布时间】:2017-04-01 00:00:39
【问题描述】:
我的代码运行正常,直到我最近更新到 Xcode 8.3。现在我的代码无法运行,给我留下错误:“类型 GameScene 没有成员:updateCounting”。我已经阅读了类似的问题和解决方案,但没有一个能够帮助解决问题。我仍在快速学习,因此将不胜感激。
这是我的代码:
let highScoreDefault = UserDefaults.standard
highScore = highScoreDefault.integer(forKey: "Highscore")
highScoreLabel.text = "\(highScore)"
func scoreUpdate(_ currentTime: CFTimeInterval){
if (score > highScore) {
highScore = score
highScoreLabel.text = NSString(format: "Highscore : %i", highScore) as String
let highscoreDefault = UserDefaults.standard
highscoreDefault.setValue(highScore, forKey: "Highscore")
highscoreDefault.synchronize()
}
}
func updateCounting() {
scoreLabel.text = String(self.score)
finalScore.text = String(self.score)
let highScoreDefault = UserDefaults.standard
highScore = highScoreDefault.integer(forKey: " ")
highScoreLabel.text = "\(highScore)"
if (score > highScore) {
highScore = score
highScoreLabel.text = NSString(format: " %i", highScore) as String
let highscoreDefault = UserDefaults.standard
highscoreDefault.setValue(highScore, forKey: " ")
highscoreDefault.synchronize()
}
self.score += 1
print(score, terminator: " ")
}
timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(GameScene.updateCounting), userInfo: nil, repeats: true)
// The above line of code is what's giving the error
totalCoins = UserDefaults.standard.integer(forKey: "Total Coins")
totalCoinLabel.text = "\(totalCoins)"
【问题讨论】:
-
与您的问题无关,但不要使用
setValue(_:forKey:)将数据保存到UserDefaults。使用set(_:forKey:)。并且无需拨打synchronize。 -
你的函数
scoreUpdate和updateCounting存储的类叫GameScene? -
为什么不直接调用
updateCounting而不是加上它的类名GameScene? -
感谢@rmaddy 的提示!
-
@paper1111 是的!那是我的函数当前存储的地方。
标签: ios swift xcode swift3 xcode8