如果我的应用程序有一个ScoreModel
需要传递给下一个UIViewController
。它可能不存在,因此不会传递给这个新的UIViewController
。如果是这种情况,我想让它创建一个新的模型实例。这不起作用(无休止的循环),但它会让我知道我要创造什么:
var scoreModel : ScoreModel! {
get {
if self.scoreModel == nil {
return ScoreModel()
} else {
return self.scoreModel
}
}
set {
self.scoreModel = newValue
}
}
如何在不进入循环的情况下检查当前版本的
scoreModel == nil
? 最佳答案
如果,您只是将scoreModel属性设置为可选(不管怎样,这是更好的约定),而不是尝试使用自定义getter/setter,那么当您想将它传递给下一个视图控制器时,您将检查它是否为nil。像这样的:
var scoreModel: ScoreModel?
let nextViewController = UIViewController()
nextViewController.scoreModel = scoreModel ?? ScoreModel()