全局变量不包含 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 服务加载之前就已打印出来。
尝试在某个按钮中再次调用它,您会看到您的结果将完美打印
在 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 服务加载之前就已打印出来。
尝试在某个按钮中再次调用它,您会看到您的结果将完美打印