【发布时间】:2018-05-05 07:38:58
【问题描述】:
我正在使用ViewModel 类,如果loginResponse 变量有任何变化,我想设置观察者。
@objcMembers class ViewModel: NSObject {
var count = 300
@objc dynamic var loginResponse :String
override init() {
loginResponse = "1"
super.init()
setupTimer()
}
func setupTimer(){
_ = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector:#selector(callTimer), userInfo: nil, repeats: true)
}
func callTimer(){
let minutes = String(count / 60)
let seconds = String(count % 60)
loginResponse = minutes + ":" + seconds
count = count - 1
}
}
查看控制器代码:
override func viewDidLoad() {
super.viewDidLoad()
_ = viewModel.observe(\ViewModel.loginResponse) { (model, changes) in
print(changes)
}
}
我想在我的 Viewcontroller 中收听对 loginResponse 变量的任何更改,但它没有收到回调。我在这里做错了什么?
【问题讨论】:
-
您需要对观察者的强引用。
_ =毫无意义。
标签: swift swift4 key-value-observing nsobject