Как внедрить класс viewModel в WKInterfaceController? - PullRequest
3 голосов
/ 25 мая 2019

Я пытаюсь внедрить свой класс viewModel в WKInterfaceController, в моем InterfaceController я установил свойство, но когда я пытаюсь использовать его в func awake(withContext context: Any?), это ноль.

Так, как я пытался это сделать: установил контейнер в ExtensionDelegate и зарегистрировал на нем мой relayController с классом viewModel в методе onInitCompleted.

Мой код:

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...