我有一个名为Product
和viewModel
的模型productViewModel
。Product Model
具有很少的属性,但对于本示例,我们仅具有name
和price
。
这是产品:
struct product {
private let name: String
private let price: Float
}
我创建一个像这样的viewModel:
struct productViewModel {
private let product: Product
private let isFavorite: Bool
init(product: Product, favorite: Bool = false) {
self.product = product
self.isFavorite = favorite
}
}
如您所见,
productViewModel
具有模型没有的isFavorite
字段。我有一个从服务器获取
Product
的函数。我想用它填充一个
viewModel
数组,并检查每个产品是否在favorites table
中(设备本身的本地表,使用SQLite
)我想到了这样的事情:
private func populateViewModel() {
for p in popularProducts {
let favorite = favoritesTable.contains(p)
let model = ProductViewModel(product: p, isFavorited: favorite)
viewModels.append(model)
}
}
从服务器获取产品列表后,调用此
populateViewModel
函数,但这似乎效率不高,但我想不出其他任何方法。
最佳答案
private func populateViewModel() {
for p in popularProducts {
if p.isFavorite{ //it is favorited
let model = ProductViewModel(product: p, isFavorited: favorite)
viewModels.append(model)
}
}
}
关于ios - 用模型填充viewModel数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61611912/