Arrays 这种类型叫什么(Swift)?var something=[(item1:String,item2:Float,item3:[String])]()
我使用这种类型的元素已经有一段时间了,以便在TableView的每个单元格中填充一组数据。有人能告诉我这种数据类型叫什么吗<代码>项目=[(类别:字符串,项目:[字符串],价格:[浮动]])() 我还遇到了一些问题,无法打开和过滤此元素中的内容。当我打印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的内容
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()
。在它们的每一个上,是的,但不是在它的数组上。