Я новичок в Swift. Я хочу присвоить ответ из Интернета (то есть строку html) переменной, но он не работает.
Я думаю, что для получения html из Интернета может потребоваться некоторое время. Поэтому другие коды будут выполняться первыми. Вот почему мой print("After task.resume: \n" + content)
появляется раньше print("Inside task: \n" + content)
.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var content : String = "content"
let url = URL(string: "https://www.apple.com/")!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
if let data = data{
content = String(data: data, encoding: .utf8)!
print("Inside task: \n" + content)
}
}
task.resume()
print("After task.resume: \n" + content)
}
Фактические результаты:
After task.resume:
content
Inside task:
<!DOCTYPE HTML>
......
Ожидаемое:
Inside task:
<!DOCTYPE HTML>
...
After task.resume:
<!DOCTYPE HTML>
...