传递函数作为参数swift

传递函数作为参数swift,swift,Swift,我想通过考试 self?.presentmainvc,动画:真 将其作为参数转换为函数 但是,生成的类型是void 那么如何将其作为参数传递给另一个函数呢?在接收类中,您可以这样做: private var myfunc : Func? func set(_func: @escaping Func) { self.myfunc = _func self.myfunc?() } 首先,您需要定义一个与函数定义匹配的闭包 typealias CompletionHandler =

我想通过考试

self?.presentmainvc,动画:真

将其作为参数转换为函数

但是,生成的类型是void


那么如何将其作为参数传递给另一个函数呢?

在接收类中,您可以这样做:

private var myfunc : Func?

func set(_func: @escaping Func) {
    self.myfunc = _func
    self.myfunc?()
}

首先,您需要定义一个与函数定义匹配的闭包

typealias CompletionHandler = (UIViewController, Bool, (() -> Void)?) -> Void
然后声明一个将此闭包作为参数的函数

func yourFunction(completionHandler: @escaping CompletionHandler) {

}
在调用函数之前,您需要确保打开self

guard let strongSelf = self else { return }
然后将当前函数传递给您的函数

strongSelf.yourFunction(completionHandler: present)