可以说,我有一个与Instagram类似的应用。有一个名为ItemView
的 View ,该 View 显示有关项目的详细信息。在此 View 中,有一个按钮可以保存项目以供以后使用。就像Instagram。
我有两个 View 模型。 ItemView的ItemViewModel
和另一个称为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中更适合? 最佳答案
如果saveItems属于用户,则用户有责任处理该对象,因此saveItem()属于UserViewModel。
关于ios - SwiftUI决定放置逻辑的最佳viewModel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61805561/