我想在TableView中添加部分,
我有:
var sections = SectionData().getSectionsFromData() // Declaration: [(key: String, value: [String])]
我的所有数据都存储在"部分"中。在密钥存储所有ABC和值中所有以26字母之一开头的项目
我无法弄清楚如何访问这些值
我的代码:
var sections = SectionData().getSectionsFromData()
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return sections.count
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return sections.[section].count // error
}
答案 0 :(得分:0)
我假设你的dataSource是一个像这样的元组数组:
let sections: [(key: String, value: [String])] = [("A", ["Andrew", "Anna"]), ("B", ["Barbie", "Brad"])]
然后您的numberOfRowsInSection
方法应如下所示:
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return sections[section].value.count
}
答案 1 :(得分:0)
Sections是[String:[String]]的字典,你试图用一个整数的section来索引它。相反,您必须按部分索引排序的键,然后使用正确的键索引部分字典。
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let keys = sections.keys.sorted()
let key = keys[section]
guard let rows = sections[key] else {
return 0
}
return rows.count
}