Я пишу функцию, которая вызывает API фондовой биржи и возвращает базовые c данные о конкретных c акциях. После этого я анализирую данные в своей структуре, но затем я не могу вернуть эту структуру, когда добавляю инструкцию return.
Эта функция компилируется без каких-либо проблем и работает как положено.
func getData(symbol: String){
let apiURL = "https://cloud.iexapis.com/stable/stock/\(symbol)/quote?token=\(secretToken)"
let url = URL(string: apiURL)!
URLSession.shared.dataTask(with: url) { (data, response, err) in
guard let data = data else { return }
do {
let json = try JSONDecoder().decode(Stock.self, from: data)
let stockResult = Stock(symbol: json.symbol,
companyName: json.companyName,
latestPrice: json.latestPrice
)
//I want to return this Stock structure
} catch let jsonErr {
print("Error serialising json: ", jsonErr)
}
}.resume()
}
Но когда я добавляю следующий код, я получаю сообщение об ошибке: Неожиданное возвращаемое значение в функции void
func getData(symbol: String) -> Stock {
let apiURL = "https://cloud.iexapis.com/stable/stock/\(symbol)/quote?token=\(secretToken)"
let url = URL(string: apiURL)!
URLSession.shared.dataTask(with: url) { (data, response, err) in
guard let data = data else { return }
do {
let json = try JSONDecoder().decode(Stock.self, from: data)
let stockResult = Stock(symbol: json.symbol,
companyName: json.companyName,
latestPrice: json.latestPrice
)
//I want to return this Stock structure
return stockResult
} catch let jsonErr {
print("Error serialising json: ", jsonErr)
}
}.resume()
}
любым способом, каким я могу заставить его скомпилировать и вернуть мою структуру акций?