我想知道,根据我的工作面试,如何获取2个不同的API调用 - 让说电影名称和国际语言支持API 如何将它们中的2个一起下载到一个表视图中?如何从两个不同的API仿真获取数据? swift
预先感谢您它会帮助我很多
我想知道,根据我的工作面试,如何获取2个不同的API调用 - 让说电影名称和国际语言支持API 如何将它们中的2个一起下载到一个表视图中?如何从两个不同的API仿真获取数据? swift
预先感谢您它会帮助我很多
这是简单,你必须创建请求链,并获得两个结果后重新装载的tableview
你必须从两个服务resposnse
创建字典的数组例如先说将仅返回arrayForMovieName: “A”, “b”, “C”]
和第二次返回刚刚arrayForLanguage: “印地文”, “英语”, “等”]
现在合并这两阵列到字典中您所创建的第三排像
arrForMovieWithLanguage = [[movie:"a","language":["Hindi","English"]],[movie:"b","language":["English"]]]
解决方法:1取布尔为服务像
var isLanguageGet:Bool = false
var isMovieGet:Bool = false
wsGetMovie()
{
isMovieGet = true
if isLanguageGet
{ self.tableView.reloadData()
}
}
wsGetLanguage()
{
isLanguageGet = true
if isMovieGet
{ self.tableView.reloadData()
}
}
解决方案:2进行Web服务呼叫同步
wsGetMovie()
{
wsGetLanguage()
}
wsGetLanguage()
{
self.tableView.reloadData()
}
同步呼叫将是这样做的最佳方法。进行第一次API调用并取得成功后,进行第二次API调用,如Sol2所示。如果这些API中的任何一个失败,则只需提供错误警报。 – Rishabh
感谢您的重播 –
您可以使用closure来异步等待另一个API响应。我只是给你一个执行的想法。之后,您可以按照您的要求实施。
在我的要求,它需要从第一个服务的欧元价格。在此之后,另一个API需要该欧元价格并且将返回付款数据。所以,我可以像下面这样实现这个场景。
func getPaymentDetail(euroPrice: Double, completion: @escaping (Result<JSON>) -> Void) {
// Call second API and return result in completion closure.
if response.result.isSuccess {
completion(response.result)
}
// For failure handle here.
}
func getPriceOfEuro(rate: @escaping (Double) -> Void) {
// Here I get Euro price.
}
然后像下面这样依次绑定它们。
getPriceOfEuro(rate: { (price) in
self.getPaymentDetail(euroPrice: price, completion: { (result) in
// Take data from result and reload Table.
})
})
我在下面给出了答案 –
请在下面检查我的答案。 – Jaydeep