将完成块从 swift 传递回 objective

pass completion block from swift to back to objective

正在尝试从 swift 代码中获取完成块,但看起来我做错了什么。

我想为我的 swift 视图控制器复制我的 objC 代码 TestViewController

我只需要 BoolBMError 返回完成块

我做错的代码:

TestViewController *changeVC = [[TestViewController alloc] initWithCompletionData:completion ];

我的 swift 我试图像 objc 函数一样复制的代码:

@objc public class TestViewController {

    var completionData: ((Bool, BMErrors?) -> Void)?

    public required init?(coder aDecoder: NSCoder) {
        fatalError("Not implemented")
    }

    @objc public init(completionData completion: ((Bool, BMErrors?) -> Void)?) {
        super.init(nibName: nil, bundle: nil)
        self.completionData = completion
    }

    func verifySuccess(result: QuestionResult, error: BMErrors?) {

        if (result.success) {
            // how to pass completionData
        }
    }

}

你可以这样调用TestViewController.completionDataself.completionData?(false, error)self.completionData?(false, nil)如果你不想传递error