#ios #swift #mvvm #reactive-swift
#iOS #swift #mvvm #реактивный-swift
Вопрос:
У меня есть массив элементов (каждый соответствует данным ячейки), и я хочу создать массив моделей просмотра ячеек.
Когда я пытаюсь сопоставить элемент с MutablePropery, я получаю Binary operator '<~' cannot be applied to operands of type 'MutableProperty<[CellViewModel]>' and '[CellViewModel]'
Как я должен изменить приведенный ниже код, чтобы получить реактивный поток?
class ListViewModel {
var poiData = MutableProperty([CellViewModel]())
init(poiWrapper: PoiWrapper) {
self.poiData <~ poiWrapper.poiList.map({ (poiItem) in
return CellViewModel(poi: poiItem)
})
}
}
Я намереваюсь создать структуру, подобную приведенной ниже: из MVVM ReactiveCocoa. Код, которым я поделился, — это ViewModel моего ViewController, где я попытался создать ViewModels ячеек, как только запустил свою родительскую ViewModel.
Комментарии:
1. Какова цель этого? Чего вы пытаетесь достичь?
Ответ №1:
Если свойство является отображением какого-либо другого сигнала, то это должно быть просто обычное свойство, а не изменяемое, и привязка не требуется (т. Е. map возвращает свойство):
class ListViewModel {
let poiData = Property<[CellViewModel]>
init(poiWrapper: PoiWrapper) {
poiData = poiWrapper.poiList.map({ (poiItem) in
return CellViewModel(poi: poiItem)
})
}
}