我正在尝试解决此完成问题,但我一直有很多警告。
Xcode给我警告
无法将类型“()”的返回表达式转换为类型“ [AirportModel]”
对不起,我是一个初学者。
我必须返回AirportModel
的向量才能显示在swiftUI的列表中,我想使用DispatchQueue
以避免在搜索时阻塞视图:
func filter (valoreSearhed: String, arrayTosearh: AirportVector, completionBlock: (_ airports: [AirportModel]) -> Void) -> [AirportModel] {
DispatchQueue.global().async {
let results = arrayTosearh.filter { $0.aptICAO.localizedCaseInsensitiveContains(valoreSearhed) }
completionBlock(results)
}
}
最佳答案
问题不在于关闭。
您已定义此filter
方法以返回[AirportModel]
的问题,但没有。在函数声明的末尾删除该-> [AirportModel]
。您不会从此函数返回任何信息。您正在使用完成处理程序将结果传回。
顺便说一句,也不要忘记将您的关闭标记为@escaping
。