【发布时间】:2019-10-19 12:04:45
【问题描述】:
我正在使用 swift 包OnboardKit,它需要一个我无法弄清楚的特定闭包类型。
类 OnboardPage 需要类型 OnboardPageAction 用于参数 action。
public typealias OnboardPageCompletion = ((_ success: Bool, _ error: Error?) -> Void)
public typealias OnboardPageAction = (@escaping OnboardPageCompletion) -> Void
OnboardPage(title: "Title",
description: "description",
action: action)
这是我最近的尝试,我尝试了几种不同的方式。
let action: ((_ success: Bool, _ error: Error?) -> ()) = {_,_ in
print("help")
}
XCode 失败并显示错误消息:
无法将 '(Bool, Error?) -> Void' 类型的值转换为预期值 参数类型“OnboardPageAction?” (aka '可选 ()) -> ()>')
我在这里做错了什么?是我的闭包定义错误还是我在 OnboardPage() 调用中使用它的方式错误?谢谢:)
(我在Closures Swift How To 了解了有关闭包的详细信息,但我无法定义包所期望的正确闭包类型)
【问题讨论】: