无法调用非函数类型

时间:2016-09-22 09:17:30

标签: ios swift

尝试将此转换为Swift 3.0时遇到问题。

我有:

public typealias CustomCompletionBlock = (_ image: UIImage?, _ error: Error?) -> Void
public var completionBlock : CustomCompletionBlock!

稍后在我的代码中,我想设置completionBlock例如:

self.completionBlock(image: nil, error: error)

但我收到错误 “无法调用非功能类型的值” 。我在这里做错了什么?

2 个答案:

答案 0 :(得分:3)

CustomCompletionBlock签名中,

public typealias CustomCompletionBlock = (_ image: UIImage?, _ error: Error?) -> Void

您已为_image变量指定了error作为外部参数名称。这意味着在调用CustomCompletionBlock时,您不必指定任何参数名称。 imageerror内部参数名称,即它们只能在闭包定义中使用。

所以你必须把它称为:

self.completionBlock(nil, error)

答案 1 :(得分:1)

尝试这样称呼:

self.completionBlock(nil, error)