可以说,我有一个与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/

10-13 05:57