0
我的目標是使用標準的Moya請求調用設置completion handler
。與非void完成處理程序的Swift網絡獲取錯誤
這裏是我的過程:
- 與一個
MoyaProvider
符合我自己的BackendAPI
(已設立) - 環繞此調用完成處理程序返回
[Player]
數據(Player
是呼叫後臺該項目自定義類) - 顯示
[Player]
數據
下面是實際的代碼:
func getPlayers(orchestraId: String, finished: @escaping() -> [Player]) {
let provider = MoyaProvider<BackendAPI>()
provider.request(.getPlayers(orchestraId: orchestraId)) { (result) in
switch result {
case let .success(moyaResponse):
let statusCode = moyaResponse.statusCode
if statusCode == 200 {
let data = moyaResponse.data
let json = JSON.init(data: data)
let players: [Player] = self.deserializeJSONPlayers(with: json)
return players
} else {
print ("Non 200 for league players data")
self.debugStatementsFromResponse(response: moyaResponse)
}
case let .failure(error):
print ("Error: \(error)")
}
}
}
我得到一個錯誤的return
線,與注意,意外non-void
返回空隙功能。不過,我已經宣佈我的功能是non-void
函數。我在構建我的方法時做錯了什麼?
明白了。而當返回時,它應該被「完成(玩家)」? – daspianist
@daspianist,是伴侶。 –
完美。這做到了。謝謝您的幫助。 – daspianist