我正在学习 MVVM,所以我在属性上添加了观察者
init(model: RegisterUserModel = RegisterUserModel()) {
self.registerModel = model
let confirmPasswordObserver = self.registerModel.observe(\RegisterUserModel.confirmPassword) {[unowned self] (model, value) in
print("Confrim Password Observeer called with value :\(self.registerModel.confirmPassword)")
}
// self.registerModel.confirmPassword = "CALLED WITH THIS LINE INSIDE INIT FUNC ONLY"
}
当文本字段值从视图控制器更改时应该调用观察者,所以我registerModel.confirmPassword = str
从updateField 方法设置
但是print
语句没有被执行
但是如果我从init
方法中更改值,那么观察者正在工作!
如何使其全球化?
额外信息
我如何改变财产
extension RegisterViewModel {
func updateField (field:RegisterFields, withString str:String) {
switch field {
case .firstName:
registerModel.firstName = str
case .lastName:
registerModel.lastName = str
case .email:
registerModel.email = str
case .phone:
registerModel.phone = str
case .city:
registerModel.city = str
case .password:
registerModel.password = str
confirmPassword.value = confirmPassword.value
case .confirmPassword:
registerModel.confirmPassword = str //SHOULD BE CALLED FROM HERE
}
}
}