Необязательное свойство закрытия в Свифте

Как вы объявляете необязательное закрытие как свойство в Swift?

Я использую этот код:

    var respondToButton:(sender: UIButton) -> Bool

но компилятор жалуется, что свойство не инициализируется в конце инициализатора. Я считаю, что могу решить эту проблему, объявив var как необязательный, однако я не могу найти правильный синтаксис.

Как объявить это свойство закрытия как необязательное?

Ответ 1

Я считаю, что вам просто нужно обернуть тип закрытия в скобках, например:

var respondToButton:((sender: UIButton) -> Bool)?

Альтернативно, если это тип закрытия, который вы часто используете, вы можете создать typealias, чтобы сделать его более читаемым:

typealias buttonResponder = (sender: UIButton) -> Bool

то в вашем классе:

var respondToButton:buttonResponder?