我正在尝试检查视图控制器中两个Bool变量的值。该值在模型中确定。问题是我的视图控制器一直将var视为false,因为我以这种方式启动它而不是值我希望它是模型中的方法正在改变它的原因。
在我的视图控制器中,我有:
override func viewDidLoad() {
super.viewdidLoad()
self.youWin()
self.youLose()
}
func youWin () {
if self.modelInstance.youWon == true {
self.gameLetter.text = "You Win!"
}
}
func youLose () {
if self.modelInstance.youLostBool == true {
self.gameLetter.text = "Game Over!"
}
}
在我的模特中我得到了
var youWonBool = false
var youLoseBools = false
func time (_ timer: Timer) {
if let timeLeft = timer.userInfo as? Timer {
timeLeft.count -= 1
timeLeft.callback?(timeLeft.count)
if self.youWin(secondsLeft: timeLeft.count) == true {
self.youWonBool = true
}
if timeLeft.count == 0 {
timer.invalidate()
self.youLostBool = true
}
}
}
func youWin(secondsLeft: Int) -> Bool {
if self.score >= 90 {
return true
}
return false
}
我想这里更大的问题是如何将一个属性的值从一个方法传递给另一个类。非常感谢!
答案 0 :(得分:0)
一种解决方案是创建一个可用于整个类的变量,并将该变量的值设置为该方法的local变量的值。在不同的文件/类中引用此代码时,可以引用类范围变量。