0

我正在声明一个变量,然后尝试在 UIAlertAction 中设置它的值。当我点击“我要去那里”按钮时,在下面的代码中,输出是:

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)")
4

1 回答 1

1

输出 2 应该在您的控制台中,但在上面1 thisCustomerRequesting: true

输出 3 表示3 thisCustomerRequesting: false因为当用户按下按钮时thisCustomerRequesting被设置为异步。 那个时候已经执行了。true
print("3 thisCustomerRequesting: \(thisCustomerRequesting)")

于 2016-10-27T15:01:17.340 回答