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で再帰的に呼び出す正しい方法ですか?