繁体   English   中英

如何在Swift中使用函数类型参数定义函数

[英]How to define a function with a function type parameter in Swift

我可以定义一个这样的功能

func doWithAction(action: ()-> void) {
    // something
}

但是,当我使用该功能时,Xcode的自动完成功能使我无法使用

self.addPullToRefreshControllerWithAction { () -> void in

}

我知道闭包和函数在Swift中是相同的,但是我想带领使用此函数的人传入一个函数,而不是一个块。 我这样做的原因是我希望此函数的行为类似于选择器和委托

是的,闭包和函数实际上在swift上是相同的,因此,如果函数期望闭包,则可以传递具有与参数相同签名的函数。 像这样

func iAmAFunc(() -> Void) -> Void {
    //do stuff
}

func funcThatTakesVoidAndReturnsVoid() -> Void {
    //do stuff
}

var closureThatTakesVoidAndReturnsVoid: () -> Void = { }

iAmAFunc(funcThatTakesVoidAndReturnsVoid)
iAmAFunc(closureThatTakesVoidAndReturnsVoid)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM