У меня есть массив, который загружается в TableView.
var sections = [
Section(sec: "One",
subSec: ["A", "B", "C", "D", "E"],
expanded: false),
Section(sec: "Two",
subSec: ["A", "B", "C", "D", "E"],
expanded: false),
Section(sec: "Three",
subSec: ["A", "B", "C", "D", "E"],
expanded: false),
Вот определение разделов:
struct Section {
var sec: String!
var subSec: [String]! // [ ] = Array of Strings
var expanded: Bool!
init(sec: String, subSec: [String], expanded: Bool) {
self.sec = sec
self.subSec = subSec
self.expanded = expanded
}
}
Я пытаюсь создать функцию поиска. Он работает для стандартного массива, но не для моей переменной, поскольку он более сложный. Я (с помощью) скорректировал код, используя плоскую карту, но я не знаю, как сопоставить его со строками subSec.
func filterContentForSearchText(_ searchText: String, scope: String = "All") {
filtered = sections.flatMap{ return $0.subSec.lowercased().contains(searchText.lowercased()) ? $0.subSec : nil }
tableView.reloadData()
}
В настоящее время я получаю следующую ошибку: Value type [String] has no value lowercased
Дополнительный код:
var filtered = [Section]()
let searchController = UISearchController(searchResultsController: nil)
"A"
? - person Sweeper   schedule 26.08.2017