ViewModel可以返回其他ViewModel

时间:2016-08-19 12:54:50

标签: ios swift mvvm

我在swift中玩MVVM并遇到这种情况: 我为tableView创建了模型,其中包含对象列表和对象的计数。像

这样的东西
class TableViewViewModel {
    var count : Int = 0
    var objects = [MyObjects]()
    //...
    func configure(objs: [MyObjects]){
        self.objects = objs
        self.count = objs.count
    }
}

所以我添加了类似

的内容
func getObjectAtIndex(index: Int) -> CellViewModel {
    let cellObject = CellViewModel(objects[row])
    return cellObject
}

这会破坏整个MVVM理念吗?这是某种反模式吗?

最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

首先我也在使用MVVM设计,而且自从Apple推出MVC设计模式以来,在IOS上,很多时候我发现自己做的事情不是100%面向MVVM,而是适合IOS编程。

其次,你将“cellObject”称为一个实际上是CellViewModel的对象,这个命名约定非常混乱。

第三个也是最后一个,YES,MVVM按概念设计模式,ViewModel可以了解有关以太的ViewModel,而Views可以了解以太视图。我完全没事。