试图从swift代码中获取完成块,但看起来我做错了。
我想为我的swift视图控制器复制的objC代码TestViewController
我只需要Bool
和BMError
回到完成区
我做错的代码:
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.completionData
,可以这样调用self.completionData?(false, error)
:self.completionData?(false, nil)
或error
。