我有一个多维数组:tempCalculatorArray [[String]]
-它总是带有2个字符串,即“AMT”,“简单评分系统”。
我想在一个UITableView
中显示我的数组,并根据第一个String值的第一个字母将它分组为几个部分。
到目前为止,我已经根据第一个字符串的第一个字母从数组中创建了一个分组字典,然后创建了一个用于分组字典的键的排序数组。
let groupedDictionary = Dictionary(grouping: tempCalculatorArray, by: { $0[0].prefix(1) } )
let keys = groupedDictionary.keys.sorted()
这些值看起来像预期的那样工作:
keys = ["A", "C", "G", "N", "T", "W"]
groupedDirectory = [
"G": [
["GCS", "Some basic description text"],
],
"N": [
["NEWS2", "Some basic description text"],
],
"A": [
["AMTS", "Some very basic description text"],
["AUDIT-C", "Some really basic description text"],
],
"W": [
["WELLS DVT", "Some basic description text"],
["WELLS PE", "Some basic description text"],
],
"T": [
["TRUELOVE WITTS", "Some basic description text"],
],
"C": [
["CURB65", "Some basic description text"],
]
]
我已经创建了一个结构体来保存我想在各种表函数中访问的信息:字母是关键字,即'A' 'B' 'C','title'是分组数组中的第一个字符串,'tagline'是第二个字符串。
struct Section {
let letter : String
let title : String
let tagline : String
}
我遇到的问题是,我不明白如何将上面的分组字典Map到结构体中,所有A都在一起,所有B都在一起等。
我已经看到了一些例子,只有基本的数组到字典,并得到了这个工作。然而,我不能找到如何做到这一点与多维数组到字典。我已经尝试了下面的,但它是完全错误的,并不断得到错误的标题和标语命令:
sections = keys.map {
Section(
letter: $0,
title: groupedDictionary[$0]![$0].sorted(),
tagline: groupedDictionary[$0]![$1].sorted()
)
}
感谢任何帮助。一旦我填充了'sections'结构,我已经知道如何在UITableView
中使用它。
2条答案
按热度按时间kpbpu0081#
我认为你的
Section
是错误的。目前,它不能处理你的样本的"A"
部分。这样会更好
现在,您可以Map:
3zwtqj6y2#
@Larme上面给出了答案。非常清楚。对于任何其他人发现这很有用,我唯一的补充是检索在UITableView中使用的变量