将变量值传递给不同的类 - Swift
问题描述:
我想检查我的视图控制器中的两个Bool变量的值。该值在模型中确定。问题是我的视图控制器不断看到var为false,因为我是以这种方式启动它,而不是我想要的值,这是模型中的方法正在改变它的方式。将变量值传递给不同的类 - Swift
在我的视图控制器我有:
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
你介意阐述吗?我不完全确定我看到你在说什么。谢谢! – timmy212
你在调用时间函数吗?在你的代码中,func win/lose只在viewController加载时调用,所以你的变量是false。你必须打电话给时间func他们打电话赢/输func –