全局变量不包含 Swift 中 ViewdidLoad 上的值



在json序列化方法下打印时包含数据(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 {

}
}

在视图下调用的变量显示 0(nil( 值

    override func viewDidLoad() {
    getProfile()
    print("bank (bank)")
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}

输出:银行 0

主要问题 变量未设置,因为 Web 服务在另一个线程中调用,并且变量甚至在 Web 服务加载之前就已打印。

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

相关内容

  • 没有找到相关文章

最新更新