swift - 如何在swift中将回调函数传递给另一个函数?

标签 swift xcode

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

这只是我的意思的一个演示。

ClassA {

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


   ClassB().classBFunction(classAcallbackFunction())


}

ClassB {

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

}

最佳答案

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

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

喜欢 regina_fallangi 分享的在评论中,回调通常称为 completion 处理程序,这就是我相应地替换名称的原因。

额外学分:

如果你只想可选地传递一个函数,你可以这样做:

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

现在您也可以只调用 classBFunction()

关于swift - 如何在swift中将回调函数传递给另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51979442/

相关文章:

ios - 动画中的文字更改后消失

ios - 如何在没有动画的情况下执行 unwind segue?

ios - Swift Playgrounds 和 Playground 书籍

swift - 设置 NSUserDefaults.standardUserDefaults() int32 Swift

ios - 如何使用自动布局管理所有 iPhone 尺寸的图像尺寸

xcode - 托管对象中的标量类型仅适用于 iPhone 5

ios - 如何根据宽度更改 View 的高度

swift - 为什么 Swift String.Index 的索引值比实际值大 4 倍?

ios - 使用 viewDidAppear 呈现一个 View Controller,当它关闭时重新打开它

ios - Sprite 数组不响应触摸移动