参数类型'String.Type'不符合预期类型'StringProtocol'

时间:2018-01-09 17:14:37

标签: swift swift4 swift-protocols

我正在使用带有搜索栏的表格视图,它带有多个搜索输入并过滤表格,但我收到以下消息:

“参数类型'String.Type'不符合预期类型'StringProtocol'”

var arrayFilter = [[]]

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {

    self.arrayFilter = array.filter{
        if let pos = ($0[0] as! String).lowercased().range(of:String)(searchText.lowercaseString) {
            return (pos.startIndex == ($0[0] as! String).startIndex)
        }
        return false
   }
    tableView.reloadData()
}

抛出错误的行是:

            if let pos = ($0[0] as! String).lowercased().range(of:String)(searchText.lowercaseString) {
            return (pos.startIndex == ($0[0] as! String).startIndex)

1 个答案:

答案 0 :(得分:0)

看来你在那里只有一个错字。实际上这根本不应该编译,因为它不是有效的Swift代码。

问题在于:

.range(of:String)(searchText.lowercaseString)

您需要更改为:

.range(of: searchText.lowercaseString)