如何在另一个函数中快速传递回调函数?

时间:2018-08-23 06:21:19

标签: swift xcode

所以我正在做我的第一个应用程序, 我想做一个对系统中几个地方具有统一功能的函数,而不仅仅是一个特定的类。 我有办法将回调函数作为参数传递给另一个函数吗?

这只是我的意思的证明。

ClassA {

   func classAcallbackFunction (displayString: String) {
     print (displayString)
   }


   ClassB().classBFunction(classAcallbackFunction())


}

ClassB {

   func classBfunction (myCallbackfunc: func) {
     mycallbackfunc("all is working !!!")
   }

}

1 个答案:

答案 0 :(得分:3)

您声明的参数不正确。像这样替换它:

func classBFunction(_ completion: (String) -> Void) {
    completion("all working")
}

就像regina_fallangi在评论中一样,回调通常称为completion处理程序,这就是为什么我相应地替换了名称的原因。

额外功劳:

如果您只想可选地传递函数,则可以执行以下操作:

func classBFunction(_ completion: ((String) -> Void)? = nil) {
    completion?("all working")
}

现在您也可以致电classBFunction()