Я пытаюсь изучить связывание и понять подход MVVM в Swift.
Я ожидал, что приведенный ниже пример сработает, по сути, вызывается someEventHappened
, это вызывает закрытие onEvent
, и мое сообщениезарегистрировано на экране.
Однако этого не происходит, ничего не печатается, и я немного не знаю, почему?
class ViewModal {
public var onEvent: (() -> Void)?
func someEventHappened() -> Void {
onEvent?()
}
}
class ViewController: UIViewController {
lazy var viewModel: ViewModal = {
let viewModal = ViewModal()
return viewModal
}()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
view.backgroundColor = .purple
viewModel.someEventHappened()
viewModel.onEvent = {
print("something happened")
}
}
}