开发者社区> 问答> 正文

一个关于 Swift 闭包类型的属性在构造器中的问题

我查了一下文档,上面说在构造器中,必须把当前类的属性全部初始化一边之后,才能调用父类的构造器,这对于 闭包 类型的属性来说有些奇怪,如果其他类型的属性标注为可选类型之后,是可以在父类构造器之后给它赋值的,闭包 类型却不行,这是为什么?

var callback:() -> Void? //无论是不是可选类型,都必须在super.init之前,否则出错

init(frame: CGRect, touchUpInside:() -> Void) {

super.init(frame: frame)
self.callback = { touchUpInside($0) }

}
求各位大神解答。。

展开
收起
a123456678 2016-07-29 10:12:39 1802 0
1 条回答
写回答
取消 提交回答
  • 你应该写: var callback: (() -> Void)?

    2019-07-17 20:01:35
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
OpenStack Swift 海量小文件优化之路 立即下载
From Java/Android to Swift iOS 立即下载
Swift在Airbnb的应用实践 立即下载