参数类型 'String.Type' 不符合 Swift 中预期的类型 'StringProtocol'
Argument type 'String.Type' does not conform to expected type 'StringProtocol' in Swift
我正在使用带有搜索栏的 Table 视图,它接受多个搜索输入并过滤 table,但我收到以下消息:
“参数类型 'String.Type' 不符合预期类型 'StringProtocol'”
var arrayFilter = [[]]
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
self.arrayFilter = array.filter{
if let pos = ([=13=][0] as! String).lowercased().range(of:String)(searchText.lowercaseString) {
return (pos.startIndex == ([=13=][0] as! String).startIndex)
}
return false
}
tableView.reloadData()
}
抛出错误的行是:
if let pos = ([=14=][0] as! String).lowercased().range(of:String)(searchText.lowercaseString) {
return (pos.startIndex == ([=14=][0] as! String).startIndex)
看来你只是打错了字。实际上这根本不应该编译,因为它不是有效的 Swift 代码。
问题在这里:
.range(of:String)(searchText.lowercaseString)
您需要更改为:
.range(of: searchText.lowercaseString)
我正在使用带有搜索栏的 Table 视图,它接受多个搜索输入并过滤 table,但我收到以下消息:
“参数类型 'String.Type' 不符合预期类型 'StringProtocol'”
var arrayFilter = [[]]
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
self.arrayFilter = array.filter{
if let pos = ([=13=][0] as! String).lowercased().range(of:String)(searchText.lowercaseString) {
return (pos.startIndex == ([=13=][0] as! String).startIndex)
}
return false
}
tableView.reloadData()
}
抛出错误的行是:
if let pos = ([=14=][0] as! String).lowercased().range(of:String)(searchText.lowercaseString) {
return (pos.startIndex == ([=14=][0] as! String).startIndex)
看来你只是打错了字。实际上这根本不应该编译,因为它不是有效的 Swift 代码。
问题在这里:
.range(of:String)(searchText.lowercaseString)
您需要更改为:
.range(of: searchText.lowercaseString)