[英]Swift Error: Type of expression is ambiguous without more context
Im trying to make a Zomato clone in SwiftUI. The error occurs when I try to loop through an item in the Firebase Firestore DB.我试图在 SwiftUI 中制作 Zomato 克隆。当我尝试循环访问 Firebase Firestore 数据库中的项目时发生错误。 The error occurs in this code:
错误发生在这段代码中:
let product = Product(name: productName, price: productPrice)
Here's the entire code: https://github.com/MysteryCoder456/VegieMato/blob/backend/VegieMato/TabViews/HomeView.swift#L57这是完整的代码: https://github.com/MysteryCoder456/VegieMato/blob/backend/VegieMato/TabViews/HomeView.swift#L57
Your productObjects
is declared as a let
constant and needs to be a var
if you want to append items to it.您的
productObjects
被声明为一个let
常量,如果您想要 append 个项目,则需要是一个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)
}
Your productName and productPrice values would be interpreted as Any data type since the prod value has been defined as [String:Any].您的 productName 和 productPrice 值将被解释为 Any 数据类型,因为 prod 值已定义为 [String:Any]。 So it has to properly casted before creating Product instance.
所以它必须在创建 Product 实例之前正确转换。
if let productName = prod[“name”] as? String,
let productPrice = prod[“price”] as? Int {
let product = Product(name: productName, price: productPrice)
productObjects.append(product)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.