微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift错误:表达式类型不明确,没有更多上下文

如何解决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 举报,一经查实,本站将立刻删除。