我正在尝试在SwiftUI中创建Zomato克隆。当我尝试遍历Firebase Firestore DB中的项目时,发生错误。该代码中出现错误:
let product = Product(name: productName, price: productPrice)
这是完整的代码:https://github.com/MysteryCoder456/VegieMato/blob/backend/VegieMato/TabViews/HomeView.swift#L57
答案 0 :(得分:1)
您的productObjects
被声明为let
常量,如果要向其添加项,则必须为var
。
let productObjects: Array<Product> = [] // <--- Change to a var
for prod in vendorProducts {
let productName = prod["name"]
let productPrice = prod["price"]
let product = Product(name: productName, price: productPrice)
productObjects.append(product)
}
答案 1 :(得分:1)
由于prod值已定义为[String:Any],因此您的productName和productPrice值将被解释为Any数据类型。因此,必须在创建Product实例之前对其进行正确的投射。
if let productName = prod[“name”] as? String,
let productPrice = prod[“price”] as? Int {
let product = Product(name: productName, price: productPrice)
productObjects.append(product)
}