Bal*_*ach 5 boolean sprite-kit swift
您好我的问题很简单我必须不断检查bool的值是真还是假,到目前为止我尝试过的是使用:
override func update(_ currentTime: TimeInterval)
Run Code Online (Sandbox Code Playgroud)
函数在swift中它是快速的方式,一旦它检查值,它将不断重复动作,即使我只希望它只执行一次动作,所以基本上我所说的是我想要做的就是检查bool值是真还是假一次,然后停止检查直到它再次变化.请帮忙,谢谢.
财产观察员
你可以在Swift中使用Property Observers来完成你需要的东西......以下是docs对这些内容的说法:
财产观察员观察并回应财产价值的变化.每次设置属性值时都会调用属性观察者,即使新值与属性的当前值相同.
有willSet和didSet财产观察员:
willSet在存储值之前调用.
存储新值后立即调用didSet.
要解决您的问题,您可以执行以下操作:
var myProperty:Int = 0 {
willSet {
print("About to set myProperty, newValue = \(newValue)")
}
didSet{
print("myProperty is now \(myProperty). Previous value was \(oldValue)")
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在属性上实现一个或两个属性观察器.
吸气剂和二传手
作为替代方案,您可以在存储的属性上使用getter和setter来解决您的问题:
private var priv_property:Int = 0
var myProperty:Int{
get {
return priv_property
}
set {
priv_property = newValue
}
}
Run Code Online (Sandbox Code Playgroud)
计算属性实际上不存储值.相反,它们提供了一个getter和一个可选的setter来间接检索和设置其他属性和值.