如何解决Swift错误:表达式类型不明确,没有更多上下文
我正在尝试在SwiftUI中创建Zomato克隆。当我尝试遍历Firebase Firestore DB中的项目时,发生错误。该代码中出现错误:
let product = Product(name: productName,price: productPrice)
这是完整的代码:https://github.com/MysteryCoder456/VegieMato/blob/backend/VegieMato/TabViews/HomeView.swift#L57
解决方法
您的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)
}
,
由于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)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。