我正在使用 Apollo iOS 来获取 GraphQL 查询。我想将apollo.fetch()
查询闭包移动到类中的单独函数。此类将包含对 apollo 客户端的静态引用以及用于执行 GraphQL 突变和查询的函数。
我正在尝试以下操作:
static func fetchQueryResults() -> CountriesQuery.Data.Country?{
var myResult: CountriesQuery.Data.Country?
myResult = nil
apollo.fetch(query: countriesQuery) { (result, error) in
print(result?.data)
myResult = result?.data //this line causes error
}
return myResult
}
每当我添加该行时myResult = result?.data
,我都会收到错误Generic parameter 'Query' could not be inferred。
但是,当注释掉该行时,它可以正常工作,但显然该功能毫无意义。最终我想概括这个函数,以便我可以将查询传递给它,但是我如何从这个基本闭包中获取数据?
本质上,问题是,我如何在函数中“包装”闭包?
这个函数的重点是能够在函数中获取表格视图部分的行数:
override func tableView(_ tableView:UITableView, numberOfRowsInSection section: Int -> Int{
return fetchQueryResults.count
}
但是,视图会在此函数运行之前加载。我认为这是因为apollo.fetch()
异步运行?