我在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 理念?这是某种反模式吗?
最好的方法是什么?
最佳答案
首先,我也在使用 MVVM 设计,在 IOS 上,因为 Apple 插入了 MVC 设计模式,很多时候我发现自己做的事情不是 100% 面向 MVVM,但最适合 IOS 编程。
其次,你称“cellObject”为一个对象,实际上是一个CellViewModel,这种命名约定非常困惑。
第三个也是最后一个,是的,MVVM 设计模式的概念,ViewModels 可以了解以太 ViewModel,Views 可以了解以太 View。我完全没问题。
关于ios - ViewModel 能否返回其他 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39039602/