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