Я реализую простое приложение Master-Detail, в котором Master viewController
управляет табличным представлением, в котором отображаются результаты вызова службы REST. Detail viewController
управляет представлением, в котором я показываю дополнительную информацию об элементе, выбранном в Master .Распространенный сценарий.
Я пытаюсь применить шаблон MVVM
.В Master viewController
я создаю и инициализирую его viewModel
следующим образом:
lazy private var viewModel: ListViewModel = {
return ListViewModel()
}()
override func viewDidLoad() {
super.viewDidLoad()
initViewModel()
}
private func initViewModel() {
viewModel.onModelChange = { [weak self] () in
DispatchQueue.main.async {
self?.tableView.reloadData()
}
}
viewModel.fetchData()
}
Мой вопрос: в закрытии, предоставленном для viewModel
, следует self
быть weak
или unowned
вместо этого?Я нашел пример реализации сценария, похожего на мой, который устанавливал его на weak
, а другой - на unowned
, так что я не совсем ясен.