将变量值传递给不同的类 - 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 
} 

我想在这里更大的问题是,你如何从一个方法中传递一个属性的值到不同的班级。非常感激!

+1

你在调用时间函数吗?在你的代码中,func win/lose只在viewController加载时调用,所以你的变量是false。你必须打电话给时间func他们打电话赢/输func –

一个解决方案是创建一个可用于整个类的变量,并将该变量的值设置为方法局部变量的值。当您在不同的文件/类中引用此代码时,可以引用类宽变量。

+0

你介意阐述吗?我不完全确定我看到你在说什么。谢谢! – timmy212