0

IBAction 関数を再帰的に呼び出す際に予期しない問題があるかどうかについて、セカンドオピニオンを得たいと思います。一度発生したクラッシュが原因で、この質問をしていますが、再現するのが難しいことがわかりました。

この呼び出しがあるとしましょう:

var allowedToSend = false

@IBAction func emailButtonPressed(sender: UIButton) {

  if !allowedToSend {

    let controller = UIAlertController(title: title,
                    message: "Are you sure you want to send the Email?",
                    preferredStyle: .Alert) 

     controller.addAction(UIAlertAction(title: "Yes please, send.", style: .Default, handler: {
                    action in

                    self.allowedToSend = true; 
                    self.emailButtonPressed(sender) // call self again
            }))  

     controller.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: nil))
     presentViewController(controller, animated: true, completion: nil)
     return // exit the function

  }

  // Reset the value
  allowedToSend = false

  // Sending code

  let text = textArea.text
  let to = toLabel.text

    ....    

}   

@IBActionこれはSwiftで再帰的に呼び出す正しい方法ですか?

4

1 に答える 1