是否有一种方法可以连续检查变量是否迅速变化?

我尝试了一个基本的计时器想法,因为它不能精确到允许中断的毫秒数,并且可能非常不可预测且容易出错,因此不太聪明。有没有一种设计这种检查器的方法?理想情况下,是否可以在这样的等待方法中创建它:

DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
})

我的意思是,当此等待计时器正在等待时,如果指定的变量已更改,它是否会有某种异常打破它并执行不同的代码?

最佳答案

如果您可以自己编辑该属性(即您自己编写该属性),则可以考虑使用didSet块:

var someProperty: String {
    didSet {
        print("Got a new value: \(newValue)")
    }
}

如果该属性不是您编写的,而是公开给Objective-C的,则可以执行一些键值观察:
@objc class MyClass : NSObject {
    @objc dynamic var someProperty: String = "Hello"
}

let obj = MyClass()
obj.observe(\.someProperty) { (myClass, value) in
    print("Got a new value: \(myClass.someProperty)")
}
obj.someProperty = "Changed!"

关于ios - 不断检查变量变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48913435/

10-10 18:25