【发布时间】:2018-05-17 03:39:54
【问题描述】:
我使用的是用 Objective-C 开发的 SDK。我的应用程序是混合的(同时支持 Objc 和 Swift),我需要使用 SDK 的完成块。在 SDK 方面,它被定义为,
typedef void (^SomethingCompletionBlock)(NSArray<id<Something> > *_Nullable result, NSError *_Nullable error);
在App端我需要使用like,
SDKService.fetchSomething(withModel: model) { (result, error) in
if error != nil {
completionBlock(result, error?)
}
}
我想知道在我的 Swift 部分中,completionBlock 的签名是什么?我正在尝试类似下面的方法,但出现错误。
typealias SomethingSearchCompletionBlock = (result: Array<Something>?, error: Error?)
错误:
不能调用非函数类型的值 'SomethingSearchCompletionBlock'(又名'(结果: 可选>,错误:可选)')
【问题讨论】:
标签: objective-c swift closures type-alias