我在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理念吗?这是某种反模式吗?
最佳方法是什么?
答案 0 :(得分:1)
首先我也在使用MVVM设计,而且自从Apple推出MVC设计模式以来,在IOS上,很多时候我发现自己做的事情不是100%面向MVVM,而是适合IOS编程。
其次,你将“cellObject”称为一个实际上是CellViewModel的对象,这个命名约定非常混乱。
第三个也是最后一个,YES,MVVM按概念设计模式,ViewModel可以了解有关以太的ViewModel,而Views可以了解以太视图。我完全没事。