Я новичок в разработке для iOS и новичок в концепции замыканий. Используя раскадровку, я создал UIButton
и UILabel
, поэтому, когда я нажимаю кнопку, отображается предупреждение с действием, а когда я отклоняю предупреждение, метка увеличивает число внутри метки, но я хочу, чтобы это приращение было после отклонения оповещения. поэтому я использовал концепцию замыкания, чтобы отложить увеличение числа внутри метки следующим образом:
class ViewController: UIViewController {
@IBOutlet weak var numberLbl: UILabel!
var count = 1
func updateLabels(){
numberLbl.text = String(count)
count += 1
}
@IBAction func btnPressed(){
let alert = UIAlertController(title: "hello", message: "this is an alert", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default, handler: { action in
print("incrementing.... ") // it print this text
// in console
self.updateLabels() // but not this line does not work
// but when i reload the app it updates the number label
/// !!!!!!!!
})
alert.addAction(action)
present(alert, animated: true, completion: nil)
}
}
Но происходит то, что когда я запускаю симулятор и нажимаю кнопку, появляется предупреждение и щелкаю действие, чтобы закрыть его, но метка не увеличивается, пока я не коснусь какой-нибудь боковой кнопки на симуляторе или не перезагрузлю приложение после что оно увеличивается
я пробовал это на физическом устройстве, и я отлично работает, но на симуляторе это не
Я использую MacBook Pro в конце 2011 года
спасибо