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

我使用的代码是:

    var respondToButton:(sender: UIButton) -> Bool

但是编译器抱怨说,在初始值设定项的末尾没有初始化属性.我相信我可以通过将var声明为可选变量来解决这个问题,但是,我找不到正确的语法.

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

推荐答案

我相信你只需要把闭包类型用括号括起来,就像这样:

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

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

typealias buttonResponder = (sender: UIButton) -> Bool

然后在你们班上:

var respondToButton:buttonResponder?

Swift相关问答推荐

SwiftUI map 旋转

从SwiftUI使用UIPageView时,同一页面连续显示两次的问题

Swift通过设置变量B自动设置变量A的值

Swift 扩展:通过方法重载增强现有类

ToolbarItem 包含在动画中但不应该包含在动画中

Swift String.firstIndex(of: "\n") 返回 nil,即使字符串有 \n

我如何读取并通知可可 macos 中某个类的计算(computed)属性?

如果 Swift 无法分配内存会怎样?

Swift 根据总值将数组拆分为块

如何在 Swift 中对单个单词进行词形还原

在 Vapor 4 中使用协议的通用流利查询

如何在 SwiftUI 中将图像传递到 2 个视图

如何有条件地依赖桌面与 iOS 的系统库?

.onTapGesture 不适用于 Stepper,仅适用于其文本

如何有条件地格式化 SwiftUI 代码

即使设置为从不也可以访问 iOS11 照片库

CMutablePointer - 如何访问它?

UITableViewCell 不显示 detailTextLabel.text - Swift

自定义 Google 登录按钮 - iOS

Objective-C 方法与可选需求方法 Swift 冲突