如何在swift中为函数类型定义一个可选变量,它可以是nil?

时间:2014-06-04 14:31:32

标签: swift

我想有一个变量来保存一个函数,但是它被初始化为nil。我试图让它成为一个可选项,但我收到了一个错误。

var OnClick: (UIButton!) -> ()? = nil

我收到此错误

Could not find an overload for '__conversion' that accepts the supplied arguments

如果我删除?,我也会得到同样的错误。

2 个答案:

答案 0 :(得分:19)

你只需将它包装在括号中:

var OnClick: ((UIButton!) -> ())? = nil

答案 1 :(得分:1)

在这里添加Cezary的正确答案。如果有人需要详细说明。你走了。

var OnClick: (UIButton!) -> ()?

定义了一个名为OnClick的变量,它存储了一个函数类型。该函数接受Implicitly Unwrapped Optional并返回可选Void。请注意,optional不是函数本身,而是函数的返回类型。所以你不能指定nil。

var OnClick: ((UIButton!) -> ())?

定义一个名为OnClick的变量,它存储optional function。该功能接受Implicitly Unwrapped Optional并返回Void