Я пытаюсь внедрить панель поиска в свое табличное представление. Но я получаю эту ошибку. Значение типа «getUserData» не имеет члена «нижнего регистра» в этом коде.
filteredDataBySearch = dataSourceArray.filter({ (data:String) -> Bool in
return data.lowercased().rangeOfString(searchText.lowercased()) != nil
})
Вот мой код:
@IBOutlet weak var FSuserLIst: UITableView!
var dataSourceArray1 = [getUserData]()
var dataSourceArray2 = [getUserData]()
var dataSourceArray3 = [getUserData]()
var dataSourceArray4 = [getUserData]()
let searchBar = UISearchBar()
var showSearchResults = false
var filteredDataBySearch = [getUserData]()
А вот моя функция для поиска
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
showSearchResults = true
searchBar.endEditing(true)
self.FSuserLIst.reloadData()
}
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
if segmentedData.selectedSegmentIndex == 0 {
filteredDataBySearch = dataSourceArray.filter({ (data:String) -> Bool in
return data.lowercased().rangeOfString(searchText.lowercased()) != nil
})
if searchText != "" {
showSearchResults = true
self.FSuserLIst.reloadData()
} else {
showSearchResults = false
self.FSuserLIst.reloadData()
}
}
else if segmentedData.selectedSegmentIndex == 1 {
filteredDataBySearch = dataSourceArray1.filter({ (data:String) -> Bool in
return data.lowercased().rangeOfString(searchText.lowercased()) != nil
})
if searchText != "" {
showSearchResults = true
self.FSuserLIst.reloadData()
} else {
showSearchResults = false
self.FSuserLIst.reloadData()
}
}
else if segmentedData.selectedSegmentIndex == 2 {
filteredDataBySearch = dataSourceArray2.filter({ (data:String) -> Bool in
return data.lowercased().rangeOfString(searchText.lowercased()) != nil
})
if searchText != "" {
showSearchResults = true
self.FSuserLIst.reloadData()
} else {
showSearchResults = false
self.FSuserLIst.reloadData()
}
}
else if segmentedData.selectedSegmentIndex == 3 {
filteredDataBySearch = dataSourceArray3.filter({ (data:String) -> Bool in
return data.lowercased().rangeOfString(searchText.lowercased()) != nil
})
if searchText != "" {
showSearchResults = true
self.FSuserLIst.reloadData()
} else {
showSearchResults = false
self.FSuserLIst.reloadData()
}
}
}
«getUserData» — это класс, который имеет более 10 переменных и находится в другом файле Swift.
Я очень ценю любую помощь, спасибо.
getUserData
не является строкой, почему вы пытаетесь отфильтровать ее в строку? Также имя класса никогда не должно называться так, должно бытьUserData
или что-то в этом роде. - person Tj3n   schedule 16.07.2018