【发布时间】:2020-05-14 19:11:35
【问题描述】:
假设我有一个与 Instagram 类似的应用程序。有一个名为ItemView 的视图显示有关项目的详细信息。在此视图中,有一个按钮可以保存项目以供以后使用。就像 Instagram 一样。
我有两个视图模型。 ItemViewModel 用于 ItemView 和另一个称为 UserViewModel
class ItemViewModel: ObservableObject {
@Published var item: Item
init(item: Item) {
self.item = item
}
// here?
func saveItem() {
//
}
}
class UserViewModel: ObservableObject {
@Published var savedItems: [SavedItem] = []
@Published var item: Item
init(item: Item) {
self.item = item
}
// or here?
func saveItem(item: Item) {
//
}
}
所有已保存项目的数组,因为它们属于用户,所以保存在UserViewModel。
问题是saveItem() 的此功能是否属于ItemViewModel,因为此按钮位于ItemView 中,还是属于UserViewModel,因为这是特定于用户并且用户可以保存项目?哪个 viewModel 更适合这个?
【问题讨论】:
标签: ios swift mvvm swiftui swift5