Я только начал изучать Swift, я работаю с API позади, проблема в том, что: Swift не ждет завершения моей функции, поэтому моя последняя функция выглядит так, как будто код не был выполнен до .
import Foundation
import UIKit
import Alamofire
import SwiftyJSON
// Classes
class User {
init(data: Any) {
self.sex = JSON(data)["sex"].string!
print(self.sex)
}
var id: Int = 1
var online: Bool = false
var picture: String = ""
var sex: String = "Male"
}
// Fonctions
func getBackground(_ apiURL: String, completion : @escaping(_ :Any) -> Void) {
// Requête API avec Alamofire + SwiftyJSON
AF.request(apiURL, method: .get).validate().responseJSON { response in
switch response.result {
case .success(let value):
let jsonData = JSON(value)
completion(jsonData["results"])
case .failure(let error):
print(error)
}
}
}
// Requête de connexion
getBackground("https://x..me", completion: { response in
let user = User(data: response)
})
print(String(user.id) + ": " + String(user.online!))
Скриншот здесь
У меня есть эта ошибка: «Использование неразрешенного идентификатора« пользователь »», я думаю, что Swift не понимает тот факт, что пользователь был определен ранее
Вся моя работа отлично работает с моим API, «self.sex» устанавливается и показывается при сборке кода.
Но я все еще «заперт», как будто ничего не могу сделать после этого кода, потому что Свифт не хочет ждать.
Я попробовал функцию асинхронизации и синхронизации, но затем весь мой следующий код должен быть под функцией ...
Заранее спасибо