Swift: 在 UIAlertAction 中设置变量值
Swift: Setting variable value inside UIAlertAction
我正在声明一个变量,然后尝试在 UIAlertAction 中设置它的值。当我点击 "I am going there" 按钮时,在我下面的代码中,输出是:
1 thisCustomerRequesting: true
3 thisCustomerRequesting: false
你能告诉我为什么输出中缺少行 "2 thisCustomerRequesting: ...." 以及为什么 "3 thisCustomerRequesting: false" 是假的,而我希望它是真的。
var thisCustomerRequesting = false
if thisCustomerRequesting == false {
let alert = UIAlertController(title: "title", message: "message", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "I am going there", style: .destructive, handler: {
(alertAction1: UIAlertAction) in
thisCustomerRequesting = true
print("1 thisCustomerRequesting: \(thisCustomerRequesting)")
}))
alert.addAction(UIAlertAction(title: "Close", style: .default,handler: nil))
self.present(alert, animated: true, completion: nil)
print("2 thisCustomerRequesting: \(thisCustomerRequesting)")
}
print("3 thisCustomerRequesting: \(thisCustomerRequesting)")
输出 2 应该在您的控制台中但高于 1 thisCustomerRequesting: true
。
输出 3 显示 3 thisCustomerRequesting: false
,因为当用户按下按钮时 thisCustomerRequesting
被异步设置为 true
。
那个时候print("3 thisCustomerRequesting: \(thisCustomerRequesting)")
已经执行了
我正在声明一个变量,然后尝试在 UIAlertAction 中设置它的值。当我点击 "I am going there" 按钮时,在我下面的代码中,输出是:
1 thisCustomerRequesting: true
3 thisCustomerRequesting: false
你能告诉我为什么输出中缺少行 "2 thisCustomerRequesting: ...." 以及为什么 "3 thisCustomerRequesting: false" 是假的,而我希望它是真的。
var thisCustomerRequesting = false
if thisCustomerRequesting == false {
let alert = UIAlertController(title: "title", message: "message", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "I am going there", style: .destructive, handler: {
(alertAction1: UIAlertAction) in
thisCustomerRequesting = true
print("1 thisCustomerRequesting: \(thisCustomerRequesting)")
}))
alert.addAction(UIAlertAction(title: "Close", style: .default,handler: nil))
self.present(alert, animated: true, completion: nil)
print("2 thisCustomerRequesting: \(thisCustomerRequesting)")
}
print("3 thisCustomerRequesting: \(thisCustomerRequesting)")
输出 2 应该在您的控制台中但高于 1 thisCustomerRequesting: true
。
输出 3 显示 3 thisCustomerRequesting: false
,因为当用户按下按钮时 thisCustomerRequesting
被异步设置为 true
。
那个时候print("3 thisCustomerRequesting: \(thisCustomerRequesting)")
已经执行了