Я новичок в программировании на Swift, и мне нужна помощь, чтобы понять, как Swift обрабатывает командные строки
Я использую Xcode 11.2, Swift4, IOS13 и macOS Catalina
@IBAction func nextStep(_ sender: Any) {
var urlR : String = ""
self.buttonNext.isEnabled = false
self.buttonNext.setTitle("Loading...", for: .normal)
let storage = Storage.storage().reference()
let imagesFolder = storage.child("images")
let imagesFile = imagesFolder.child("\(imageID).jpg")
print("Step 1 - Start")
//Recover image
if let imgRecovered = image.image {
if let imgData = UIImageJPEGRepresentation(imgRecovered, 0.1) {
imagesFile.putData(imgData, metadata: nil) { (metaData, error) in
if error == nil {
//Download URL
imagesFile.downloadURL { (url, error) in
print("Step 2 \(url?.absoluteString) - End of print")
self.urlR = url!.absoluteString
}
// END Download URL
print("Step 3 \(self.urlR) - end of print")
print("Step 4 - Save Sucess")
self.buttonNext.isEnabled = true
self.buttonNext.setTitle("Próximo", for: .normal)
print("Step 5 - Perform Segue")
self.performSegue(withIdentifier: "UserSelectionSegue", sender: self.urlRecebida)
} else {
print("Step 6 - Upload error")
self.buttonNext.isEnabled = true
self.buttonNext.setTitle("Next", for: .normal)
}
}
}
}
}
Я добавил сообщение для печати, чтобы понять последовательность командной строки, и я ожидаю, что сообщения будут отображаться в следующем порядке: * Шаг 1 * Шаг 2 * Шаг 3 * Шаг 4 * Шаг 5 * (или Шаг 6 вместовсе вышеперечисленное в случае ошибок).
Но вывод я получаю * Шаг 1 * Шаг 3 * Шаг 4 * Шаг 5 * Шаг 2
Почему шаг 2 самый последнийбыть показанным? Что мне нужно сделать, чтобы обработать его после шага 1?
Спасибо за помощь