我正在尝试解决此完成问题,但我一直有很多警告。

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

08-15 21:20