全局变量不包含 swift 中 viewdidload 的值

global variable not contain value on viewdidload in swift

在 jsonserialization 方法下打印时包含数据的变量(1)但在 viewdidload 中显示为零值(0)

    var bank = Int()

    func getProfile() {
    .
    .
    .
    .
    let json = try JSONSerialization.jsonObject(with: data) as! [String: Any]
    print("json \(json)")

let status = json["Success"] as! Bool

if status {
//send profile update status 1
//After Alert Success
    DispatchQueue.main.async {
        if let banks = (json["bank"] as? NSString)?.intValue {


            print("banks\(banks)")
            self.bank = Int(banks)
            print("self.bank\(self.bank)")
        }
}



} else {


}
}

在 viewdidload 下调用的变量显示 0(nil) 值

    override func viewDidLoad() {
    getProfile()
    print("bank \(bank)")
    super.viewDidLoad()

    // Do any additional setup after loading the view.
}

输出:银行 0

变量未设置的主要问题是在另一个线程中调用了 web 服务,并且变量在 web 服务加载之前就已打印出来。

尝试在某个按钮中再次调用它,您会看到您的结果将完美打印