【发布时间】:2018-07-08 15:37:45
【问题描述】:
我正在关注 2017 年秋季的斯坦福 ios 课程。当教授进行演示时,我像他一样进行输入和运行。他展示了如何将惰性与 var 一起使用允许使用 UIButton 计数进行变量初始化。当我添加惰性关键字时,错误并没有消失。认为这可能是与 xcode 更新相关的问题,我下载了其他人的项目版本,该项目没有问题。代码如下,有什么想法吗? :/
类视图控制器:UIViewController {
lazy var game = ConcentrationModel(numberOfPairsOfCards: (cardButtons.count + 1) / 2)
//Could have had var flipCount: Int = 0
//But it is inferred
var flipCount = 0 {
didSet {
flipCountLabel.text = "Flips: \(flipCount)"
}
}
var emojiChoices = ["????","????","????","????","????","????"]
@IBOutlet var cardButtons: [UIButton]!
@IBOutlet weak var flipCountLabel: UILabel!
@IBAction func touchCard(_ sender: UIButton) {
flipCount += 1
if let cardNumber = cardButtons.index(of: sender) {
flipCard(withEmoji: emojiChoices[cardNumber], on: sender)
print("cardNumber = \(cardNumber)")
} else {
print("chosen card was not in cardButtons")
}
print("agh!!! a ghost")
}
func flipCard(withEmoji emoji: String, on button: UIButton) {
if button.currentTitle == emoji {
button.setTitle("", for: UIControlState.normal)
button.backgroundColor = #colorLiteral(red: 1, green: 0.5763723254, blue: 0, alpha: 1)
} else {
button.setTitle(emoji, for: UIControlState.normal)
button.backgroundColor = #colorLiteral(red: 0.9999960065, green: 1, blue: 1, alpha: 1)
}
}
}
【问题讨论】: