将完成块从 swift 传递回 objective
pass completion block from swift to back to objective
正在尝试从 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
。
正在尝试从 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
。