【发布时间】:2019-08-17 17:20:18
【问题描述】:
我正在尝试了解如何使用 MVVM 设计模式和 SwiftUI 来实现以下目标。
我希望只有 1 个网络操作队列实例(使用 OperationQueue),其中任何需要发送任何网络请求的视图模型但我听说创建单例不是首选,我应该传递网络队列对象在需要的地方。
因此,如果我在场景委托中创建网络操作队列的实例并将它们传递到 ContentView 初始化程序并将其存储在一个对象中,然后传递到创建的视图中。
根据我的理解,这似乎不是好的 MVVM 设计实践,View 应该只拥有 ViewModel?
实现这一目标的最佳方法是什么?
编辑:多考虑一下,我可以通过它的构造函数将它传递到视图中,然后在构造函数中我可以创建视图模型并直接传递它,因此视图不拥有任何东西。
但我仍然需要一个单例,那么如何将单例作为依赖注入传递而不是全局使用它?
谢谢
【问题讨论】:
-
我在我的应用程序中使用 MVVM,全部都是开源的(正在进行中),这是 SettingsView(SettingsScreen,Screen 现在只是 View 的类型别名),我在其中注入ViewModel进入View,ViewModel有依赖:github.com/radixdlt/radixdlt-swift/blob/xcode11/ExampleWallet/…
标签: ios swift design-patterns mvvm swiftui