【发布时间】:2021-04-21 21:26:07
【问题描述】:
我目前正在构建一个 iOS 应用程序,该应用程序使用 Google Firestore 存储用户添加的产品。添加的每个产品都连接成一个用户特定的“产品”数组(如下所示 - 尽管它们有不同的数字,但它们是同一数组的一部分,但在 UI 中被 Google 分开以更清楚地显示每个单独的子数组)
我使用以下语法从数据库中“产品”字段的第一个子数组中返回数据
let group_array = document["product"] as? [String] ?? [""]
if (group_array.count) == 1 {
let productName1 = group_array.first ?? "No data to display :("`
self.tableViewData =
[cellData(opened: false, title: "Item 1", sectionData: [productName1])]
}
返回格式如下:
产品名称:1,上市价格:3,简要说明:4,产品网址:2,上市有效期至:21/04/2021 10:22:17
但是,我尝试查询此子数组的每个单独部分,例如,我可以返回“产品名称:1”而不是整个子数组。由于let productName1 = group_array.first 用于返回第一个子数组,我尝试let productName1 = group_array.first[0] 尝试返回此子数组中的第一个值,但是我收到以下错误:
无法根据成员“first”推断上下文基础
所以我的问题是,参考我的数据库中的图像(在我的问题的顶部),如果我只想从示例子数组中返回“产品名称:1”,这是否可能,如果可以,我将如何提取它?
【问题讨论】:
-
在第一张图片
product中,这是一个包含 2 个项目的数组,其中每个项目只是一个长字符串,如Product Name: 1, Listing Price: 3, A brief description: 4, Product URL: 2, Listing active until: 21/04/2021 10:22:17? -
嗨,bxod,我将如何从字符串中读取并返回“产品名称:(值)”?我会使用子字符串吗?
-
我的问题的答案是肯定的吗?您在帖子中提到的“子数组”是什么?
-
您的问题的答案是肯定的。子数组是引用,因此数组中的每个部分(例如,“0”被称为子数组),然后它们作为字符串返回。 :)
-
好的,你的意思是下标,不是子数组。
标签: arrays swift google-cloud-firestore uikit