我正在使用 MVVM 并想将我的 viewModel 分配给 Controllers init 上的 viewController。我以为我会这样实现:
class LoginViewController: UIViewController, UITextFieldDelegate {
init(loginViewModel: LoginViewModel) {
self.loginViewModel = loginViewModel
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}
但是我得到了错误:
Super.init isn't called on all paths before returning from initializer
这不是正确的路线吗?另外,当它需要一个对象时,我将如何正确初始化 viewModel,但它必须先执行网络请求?使用空白对象实例初始化?
谢谢
编辑:这就是我现在正在尝试的
initWithViewAndViewModel:(loginView: LoginView, loginViewModel: LoginViewModel) {
super.init()
self.loginView = loginView
self.loginViewModel = loginViewModel
}
最佳答案
作为最佳实践,
第 1 步:
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
第 2 步:
init(loginViewModel : LoginViewModel) {
super.init(nibName: nil, bundle: nil)
initWithModel:(loginViewModel: LoginViewModel)
}
第三步:实现initWithModel函数
关于ios - 在 Controller Init 上分配 viewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45935008/