我的应用程序中有一个很大的字典:
var data = [["type":"Sport", "model":"R6"],["type":"Enduro", "model":"Tenerre"],["type":"Chopper", "model":"Intruder"]]
我希望使用此函数UISearchController
func updateSearchResultsForSearchController(searchController: UISearchController)
中对其进行排序
在这个函数里面我想通过"类型"来过滤我的数组。不使用for
但filter(includeElement: (Self.Generator.Element) throws -> Bool)
但我收到错误Cannot convert value of type String -> Bool to expected argument type ([String:String]) -> Bool
我正在做这样的事情:
self.data.filter({ (type: String) -> Bool in
return true
})
我该怎么做呢?
答案 0 :(得分:1)
data
的类型为[[String:String]]
。换句话说,是Array of [String:String]
。
因此,传递给filter
的闭包参数必须具有以下类型:[String: String]
。
您可以使用以下代码并将您的简单return true
替换为您的逻辑。
let filteredData = self.data.filter { (dict:[String:String]) -> Bool in
return true
}
请注意,
dict
是数组data
的 i-th 元素。