如何将viewModel类注入WKInterfaceController?

时间:2019-05-25 06:00:19

标签: swift watchkit watch-os wkinterfacecontroller swinject

我试图将我的viewModel类注入WKInterfaceController,在我的InterfaceController中我已经设置了属性,但是当我尝试在func awake(withContext context: Any?)中使用它时,它为零。

所以我尝试这样做的方法是:在ExtensionDelegate中设置容器,并在onInitCompleted方法中使用viewModel类将我的interferenceController注册到它。

我的代码:

https://pastebin.com/jFaLHi2m

class ExtensionDelegate: NSObject {

    let container = Container()
    func applicationDidFinishLaunching() {
       setupContainer()
    }

   func setupContainer(){
   container.register(HomeInterfaceController.self) { _ in HomeInterfaceController()
            }.initCompleted { r, c in
                c.viewModel = r.resolve(HomeViewModel.self)
        }
    }
}

class HomeInterfaceController: WKInterfaceController {

    var viewModel: HomeViewModel!

    override func willActivate() {
        viewModel.fetch() // ----> here I get exception
        super.willActivate()
    }
}

在尝试使用viewModel的行上,我得到:

  

线程1:EXC_BREAKPOINT(代码= 1,子代码= 0x524abc)

您知道如何将类正确地注入WKInterfaceController吗?

0 个答案:

没有答案