如何解决为什么我会收到“从 '[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 举报,一经查实,本站将立刻删除。