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

为什么我会收到“从 '[String]' 转换到不相关的类型 'String' 总是失败”错误?

如何解决为什么我会收到“从 '[String]' 转换到不相关的类型 'String' 总是失败”错误?

我正在尝试将一组数据(存储在名为“product”的 Firestore 数据库字段中)显示到 UITableViewController 中。我目前用来尝试将数组返回到我的应用程序的代码如下:

if userId == user?.uid {               
   let group_array = document["product"] as? Array ?? [""]
    let productName1 = (group_array) as? String
      self.tableViewData =[cellData(opened: false,title: "Item 1",sectionData: [productName1 ?? "No data to display :("])]
   }

当我运行它时,它会编译,但是我目前收到以下警告消息:

从 '[String]' 转换为不相关的类型 'String' 总是失败”

这会导致不返回任何数据,并为 productName1 返回 nil,从而导致显示“无数据显示 :(”消息而不是数据。

有人知道我需要为以下行分配哪种类型才能返回此数据吗?

let productName1 = (group_array) as? String

解决方法

您已将 group_array 定义为 Array。然后您尝试将其转换为字符串。您不能将 Array(甚至是 String 对象的数组)转换为 String。

这一行:

let productName1 = (group_array) as? String

总会失败。

你在寻找什么结果?字符串数组中的第一个条目?将数组中的所有元素组合在一起的字符串?

如果你想要第一个元素,使用

let productName1 = group_array.first as? string ?? ""

如果您想组合这些项目,请使用以下内容:

let productNames = (group_array as? [String])?.joined(separator: ",") ?? ""

顺便说一句,如果您将数组转换为字符串数组,而不仅仅是通用数组(任意数组)

变化:

让 group_array = document["product"] 作为?大批 ?? [""]

致:

让 group_array = document["product"] 作为? [细绳] ?? [""]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。