Я делаю запрос http post в рамках XCTest в XCode для простого теста пользовательского интерфейса для моего приложения. В рамках запроса ответ возвращается. Я не могу получить доступ к этому ответу вне задачи URLSession, и мне нужно, потому что он содержит JWT, который должен быть декодирован и использован для другого http-запроса.
Я пытался выяснить, как это сделать, но трудно понять правильный путь, так как я новичок в Swift. Я попытался создать новый объект json и присвоить ему этот ответ за пределами URLSession, но он просто говорит, что не может найти этот ответ, он находится вне области видимости.
// make HTTP request
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print(error?.localizedDescription ?? "No data")
return
}
let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
if let responseJSON = responseJSON as? [String: Any] {
print(responseJSON)
}
}
task.resume()
let response = responseJSON as! [String:Any]
Ожидаемые результаты состоят в том, что теперь у меня есть объект ответа вне http-запроса, и я могу затем его декодировать. Фактические результаты - ошибка:
Использование неразрешенного идентификатора 'responseJSON'