完成处理程序,作为来自Objective-C的Swift中的var

时间:2016-11-04 13:28:08

标签: objective-c swift

我必须在Swift中将此完成处理程序作为变量:

-test:(void(^)(id result, NSError* error))completion;

在Swift中看起来有什么样的?在这种情况下id == AnyObject和NSError == Error?

1 个答案:

答案 0 :(得分:0)

id导入到Swift中AnyNSError *在Swift 3中变为Error?,因此您的完成处理程序应该在Swift中如下所示:

func completionHandler(result: Any, error: Error?) {
    // Do something
}

obj.test(completionHandler)

或者如果你想内联定义它:

let handler = { (result: Any, error: Error?) -> Void in
    // Do something
}
obj.test(handler)