Swift 中的可选闭包属性

Posted

技术标签:

【中文标题】Swift 中的可选闭包属性【英文标题】:optional closure property in Swift 【发布时间】:2014-06-11 18:38:51 【问题描述】:

如何在 Swift 中将可选闭包声明为属性?

我正在使用此代码:

    var respondToButton:(sender: UIButton) -> Bool

但编译器抱怨该属性未在初始化程序结束时初始化。我相信我可以通过将 var 声明为可选来解决这个问题,但是,我找不到正确的语法。

如何将此闭包属性声明为可选?

【问题讨论】:

var respondToButton:((sender: UIButton) -> Bool)? 工作吗? 真棒是的!添加答案以便我接受? 【参考方案1】:

我相信你只需要将闭包类型括在括号中,如下所示:

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

或者,如果这是您要经常使用的闭包类型,您可以创建一个 typealias 以使其更具可读性:

typealias buttonResponder = (sender: UIButton) -> Bool

然后在你的班级:

var respondToButton:buttonResponder?

【讨论】:

以上是关于Swift 中的可选闭包属性的主要内容,如果未能解决你的问题,请参考以下文章

Swift 中的可选值是啥?

swift中的可选类型

关于swift中的可选类型

Swift 中的 NSManagedObject 子类不能使用自定义访问器?

Swift的可选链,类型转换和扩展

Swift16-可选链式调用