Swift 4 - 表达式类型'@lvalue String?'在没有更多上下文的情况下是模棱两可的 [英] Swift 4 - Expression type '@lvalue String?' is ambiguous without more context
本文介绍了Swift 4 - 表达式类型'@lvalue String?'在没有更多上下文的情况下是模棱两可的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试记录我正在做的游戏的得分和高分.但我一直收到这个错误:
I'm trying to record a score and Highscore on a game that I'm doing. But I've been getting this error:
有关如何解决此问题的任何线索?我有 Xcode 10,我正在使用 Swift 4.提前致谢!
Any clues of how can I fix this? I have Xcode 10 and I'm working with Swift 4. Thanks in advance!
import UIKit
import Foundation
class ScoreVC: UIViewController {
@IBOutlet weak var scoreLabel: UILabel!
@IBOutlet weak var highscoreLabel: UILabel!
@IBOutlet weak var reset: UIButton!
@IBOutlet weak var points: UIButton!
var Score = 0
var Highscore = 0
override func viewDidLoad() {
super.viewDidLoad()
let HighscoreDefault = UserDefaults.standard
if (HighscoreDefault.value(forKey: "Highscore") != nil) {
Highscore = HighscoreDefault.value(forKey: "Highscore") as! Int
highscoreLabel.text = NSString(format: "Highscore: %i", Highscore) as String
}
}
@IBAction func resetButton(_ sender: Any) {
Score = 0
scoreLabel.text = NSString(format: "Score: %i", Score) as String
}
@IBAction func pointsButton(_ sender: Any) {
Score +=
scoreLabel.text = NSString(format: "Score: %i", Score) as String
if (Score > Highscore) {
Highscore = Score
highscoreLabel.text = NSString(format: "Highscore: %i", Highscore) as String
var HighscoreDefault = UserDefaults.standard
HighscoreDefault.setValue(Highscore, forKey: "Highscore")
HighscoreDefault.synchronize()
}
}
}
推荐答案
从 pointsButton
编辑这一行:
Score += 1
关于错误信息,
scoreLabel.text = NSString(format: "Score: %i", Score) as String
这里的 scoreLabel.text
是一个 lvalue,因为它存在于赋值运算符 =
的左侧.在前一行中,在您的原始代码中,Score +=
需要一个 rvalue,并且赋值操作不能被视为右值.
Here scoreLabel.text
is an lvalue since it exists on the left of the assignment operator =
. In the line before, in your original code, Score +=
was expecting an rvalue and the assignment operation can't be treated as an rvalue.
这篇关于Swift 4 - 表达式类型'@lvalue String?'在没有更多上下文的情况下是模棱两可的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文