ios - ViewModel 能否返回其他 ViewModel

标签 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 理念?这是某种反模式吗?

最好的方法是什么?

最佳答案

首先,我也在使用 MVVM 设计,在 IOS 上,因为 Apple 插入了 MVC 设计模式,很多时候我发现自己做的事情不是 100% 面向 MVVM,但最适合 IOS 编程。

其次,你称“cellObject”为一个对象,实际上是一个CellViewModel,这种命名约定非常困惑。

第三个也是最后一个,是的,MVVM 设计模式的概念,ViewModels 可以了解以太 ViewModel,Views 可以了解以太 View。我完全没问题。

关于ios - ViewModel 能否返回其他 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39039602/

相关文章:

ios - Admob 广告不显示 iOS

ios - Facebook:FQL 获取所有签到 me() 已标记在

ios - 为 iOS arm64 编译的 G729 编解码器无法正常运行

ios - 共享扩展模式演示样式 iOS 13 无法正常工作

ios - 在不同的碰撞类别上使用单独的函数

c# - 当相关页面从后台堆栈中移除时,从内存中清除 View 模型 - WP8.1

ios - 找不到实例方法 '-presentViewController:animated'

swift - setter 选择器不会快速自动完成

MVVM - 将 JSON 子元素绑定(bind)到 Kendo UI 控件

c# - 避免因锁定 WPF 而导致 UI 阻塞