我想知道,根據我的工作面試,如何獲取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