Я пытаюсь добавить некоторые базовые классы в приложение для iOS, используя MVVM, чтобы упростить и реализовать общие классовые отношения.
К сожалению, я сталкиваюсь со следующей проблемой:
error: MyPlayground.playground:27:7: error: type 'ListView' does not
conform to protocol 'MVVMView'
class ListView: MVVMView {
Я не уверен, почему это происходит, и это как бы нарушает мою идею «форсировать» мой код в этой архитектуре. Есть ли что-то очевидное, что мне не хватает? Есть ли обходной путь для меня, чтобы это исправить и сохранить «принудительную» архитектуру?
Примечание: я бегу на swift 5.
/**
Base classes for MVVM
*/
protocol MVVMViewModel {
}
protocol MVVMView {
associatedtype ViewModel: MVVMViewModel
var viewModel: ViewModel { get }
}
/**
Simple viewmodel, only used by protocol so it can be replaced when testing
*/
protocol ListViewModelProtocol: MVVMViewModel {
}
class ListViewModel: ListViewModelProtocol {
}
/*
Simple view
*/
class ListView: MVVMView {
typealias ViewModel = ListViewModelProtocol
var viewModel: ListViewModelProtocol
init(viewModel: ListViewModelProtocol) {
self.viewModel = viewModel
}
}