【发布时间】:2018-12-23 13:26:43
【问题描述】:
我正在尝试在我的表格视图中实现搜索栏。但我收到了这个错误 “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或其他东西 -
我应该过滤什么?我是这方面的新手...谢谢。
-
添加 getUserData 类。类名总是以大写字母开头。
标签: ios swift xcode swift4 xcode9.4