Я очень новичок в Swift.Преобразование данных в строку в Swift 3
Я хочу создать что-то вроде API на Swift для моего образовательного приложения.
У меня есть этот код:
static func getFilm(filmID: Int) -> String {
print("getFilm")
let url = URL(string: "https://api.kinopoisk.cf/getFilm?filmID=\(filmID)")!
var request = URLRequest(url: url)
var returnData: String = ""
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if var responseVar = response, var dataVar = data {
print(responseVar)
returnData = String(data: dataVar, encoding: .utf8)
} else {
print(error)
}
}
task.resume()
return returnData
}
И я стараюсь, чтобы преобразовать данные в строку в этой строке: returnData = String(data: dataVar, encoding: .utf8)
Swift компилятор дает мне ошибку, и изменить эту строку returnData = String(data: dataVar, encoding: .utf8)!
, когда это Я выполняю эту строку, я получаю пустую переменную returnData.
Если я использую базовый пример линию print(String(data: data, encoding: .utf8))
все будет в порядке, и я могу видеть data
в XCode консоли.
Итак, как я могу преобразовать данные в строку?
Основная проблема заключается в том, что вы не можете вернуть что-то из асинхронной функции. Вам нужен обработчик завершения. – vadian
@vadian. Можете ли вы преобразовать мой код в обработчик завершения кода? Я много читал о них, и я не понимаю, что мне нужно разделить в моем коде. – IlyaGutnikov
Я написал ответ. – vadian