我学习Swift lang,但我不能传递可选的回调参数到函数:
func dismiss(completion: () -> Void) { if (completion) { return self.dismissViewControllerAnimated(true,completion: completion) } self.dismissModalViewControllerAnimated(true) }
这给我一个错误 – Type() – > Void不符合协议“LogicValue”
有什么建议么?
将完成参数声明为(隐含解包)可选闭包(() – > Void)!:
原文链接:https://www.f2er.com/swift/320920.htmlfunc dismiss(completion: (() -> Void)!) { if (completion) { return self.dismissViewControllerAnimated(true,completion: completion) } self.dismissModalViewControllerAnimated(true) }
但请注意,你可以打电话
self.dismissViewControllerAnimated(true,completion: completion)
在任何情况下,因为该函数的完成参数也是可选的。
和
func dismissModalViewControllerAnimated(animated: Bool)
实际上标记为已弃用。