Arrays 这种类型叫什么(Swift)?var something=[(item1:String,item2:Float,item3:[String])]()

Arrays 这种类型叫什么(Swift)?var something=[(item1:String,item2:Float,item3:[String])](),arrays,swift,uitableview,filtering,Arrays,Swift,Uitableview,Filtering,我使用这种类型的元素已经有一段时间了,以便在TableView的每个单元格中填充一组数据。有人能告诉我这种数据类型叫什么吗项目=[(类别:字符串,项目:[字符串],价格:[浮动]])() 我还遇到了一些问题,无法打开和过滤此元素中的内容。当我打印Items时,它返回如下内容:[(“牛肉”,“牛排”,“炸牛肉],[5.98999774.98999777]),(“鸡肉”,“烤鸡],[4.98999774]) 问题是我无法访问项目中的项目数组 我可以使用以下命令根据类别轻松筛选tableview的内容

我使用这种类型的元素已经有一段时间了,以便在TableView的每个单元格中填充一组数据。有人能告诉我这种数据类型叫什么吗<代码>项目=[(类别:字符串,项目:[字符串],价格:[浮动]])()

我还遇到了一些问题,无法打开和过滤此元素中的内容。当我打印
Items
时,它返回如下内容:
[(“牛肉”,“牛排”,“炸牛肉],[5.98999774.98999777]),(“鸡肉”,“烤鸡],[4.98999774])

问题是我无法访问
项目
中的
项目
数组

我可以使用以下命令根据类别轻松筛选tableview的内容:

func filteredContentForSearchText(_ searchText: String, scope: String = "ALL") {
    Items2 = Items.filter { (element:(category: String, items: [String], price: [Float])) -> Bool in

        return element.category.lowercased().contains(searchText.lowercased())
    }
    tableView.reloadData()
}
但是当我想过滤下面这样的内容时,我得到了一个错误,“[String]”类型的
值没有成员“小写”

func filteredContentForSearchText(_ searchText: String, scope: String = "ALL") {
        items = items2.filter { (element:(category: String, items: [String], price: [Float])) -> Bool in

            return element.items.lowercased().contains(searchText.lowercased())
        }
        tableView.reloadData()
    }

如何打开
项数组中的字符串?提前感谢。

您的第一个问题的答案是,它是一种有点奇怪的数据类型,但它是一个
元组的
数组
,由3个元素组成:一个
字符串
类别
),一个
数组
项目
),和一个
数组
价格

访问元组的单个元素与访问常规数组相同<例如,代码>项目2[0]
。这将为您提供一个
,您可以单独访问其上的元组成员。这可以匿名(
item.0
item.1
item.2
)或通过命名元素(
item.category
item.items
item.price
)完成


如果访问
item.items
item.1
),则有一个
数组。因为它是一个字符串数组,所以没有小写的
。您可以访问此数组中的单个字符串并将其
小写
或将所有字符串合并成一个字符串并
小写

第一个问题的答案是它的数据类型有点奇怪,但是它是一个
元组的
数组
,由3个元素组成:一个
字符串
类别
),一个
数组
项目
),和一个
数组
价格

访问元组的单个元素与访问常规数组相同<例如,代码>项目2[0]
。这将为您提供一个
,您可以单独访问其上的元组成员。这可以匿名(
item.0
item.1
item.2
)或通过命名元素(
item.category
item.items
item.price
)完成


如果访问
item.items
item.1
),则有一个
数组。因为它是一个字符串数组,所以没有小写的
。您可以访问此数组中的单个字符串并将其
小写
或将所有字符串合并为单个字符串,并且
小写
表示
字符串
对象的数组。所以你不能在上面做
lowercased()
。在每个字符串上,是的,但不是在它的数组上。
[String]
表示
字符串
对象的数组。所以你不能在上面做
lowercased()
。在它们的每一个上,是的,但不是在它的数组上。