簡體   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