参数类型 '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)