[英]Constant check for variable change
是否有辦法連續檢查變量是否在swift中發生了變化?
我已經嘗試了一個基本的計時器想法,它不是很聰明,因為它沒有精確地工作到允許的中斷的毫秒,並且可能是高度不可預測和小故障。 有沒有辦法設計這樣的檢查器? 理想情況下,它可以在等待方法中創建,例如:
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!"
你想要的是關鍵價值觀察。 基金會支持NSObject屬性的KVO,並且在Swift 4中支持原生Swift KVO。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.