【发布时间】:2018-04-16 04:23:10
【问题描述】:
我正在为 TableView 使用字典。我还有一个搜索栏,用于搜索表格中的项目。
数据存储如下:
var namesDic = [String: [Name]]()
我通过它搜索:
func updateSearchResults(for searchController: UISearchController) {
if searchController.searchBar.text! == "" {
filteredNames = namesDic
} else {
filteredNames.removeAll()
for persons in namesDic {
let person = persons.value.filter { $0.getName().contains(searchController.searchBar.text!)
}
for boy in person {
filteredNames[String(describing: boy.getName().characters.first!)] = [boy]
}
}
}
self.tableView.reloadData()
}
问题:当我搜索一个项目时,我现在只得到一个记录。
上面有没有更好的实现方式?
【问题讨论】:
-
如果我没记错的话,你应该对结果数组执行追加。但是您正在分配价值。 filtersNames[String(描述:boy.getName().characters.first!)] = [boy]
-
@DJ-Glock 感谢您的提示。我必须先只删除值,然后再应用追加。
标签: ios swift uitableview dictionary