我怎样才能不断检查bool的值是真是假?迅速

Bal*_*ach 5 boolean sprite-kit swift

您好我的问题很简单我必须不断检查bool的值是真还是假,到目前为止我尝试过的是使用:

override func update(_ currentTime: TimeInterval) 
Run Code Online (Sandbox Code Playgroud)

函数在swift中它是快速的方式,一旦它检查值,它将不断重复动作,即使我只希望它只执行一次动作,所以基本上我所说的是我想要做的就是检查bool值是真还是假一次,然后停止检查直到它再次变化.请帮忙,谢谢.

Whi*_*ind 5

财产观察员

你可以在Swift中使用Property Observers来完成你需要的东西......以下是docs对这些内容的说法:

财产观察员观察并回应财产价值的变化.每次设置属性值时都会调用属性观察者,即使新值与属性的当前值相同.

willSetdidSet财产观察员:

  • 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来间接检索和设置其他属性和值.