Привязать тип коллекции к свойству ViewModel - PullRequest
0 голосов
/ 15 марта 2019

У меня есть массив элементов (каждый соответствует данным ячейки), и я хочу создать массив ячеек ViewModels.

Когда я пытаюсь сопоставить элемент с 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, где я пытался создать ячейки ViewModel, как только инициировал мою родительскую ViewModel. enter image description here

1 Ответ

0 голосов
/ 16 марта 2019

Если свойство является картой какого-либо другого сигнала, тогда оно должно быть обычным свойством, а не изменяемым, и привязка не требуется (т. Е. Map возвращает свойство):

class ListViewModel {
    let poiData = Property<[CellViewModel]>

    init(poiWrapper: PoiWrapper) {
        poiData = poiWrapper.poiList.map({ (poiItem)  in
            return CellViewModel(poi: poiItem)
        })
    }
}
...