我正在尝试编写一些调用现有Objective C函数的Swift代码。 Objective C函数如下所示:
+(void) getCurrentUserprofileWithCompletion:(RequestCallback)completion {...}
其中RequestCallback在.h文件中定义为:
typedef void (^RequestCallback) (ResponseInfo *responseInfo);
我尝试过很多不同的东西,但似乎没什么用。看起来对我来说最合乎逻辑的代码是:
let callback: (responseInfo: ResponseInfo) -> Void = {(responseInfo: ResponseInfo) -> Void in
if let organization: Organizations = Organizations.organizationWithId(orgId) {
completionBlock(false, nil)
} else {
self.switchOrganization(user, organization: organization, completionBlock: completionBlock)
}
}
Users.getCurrentUserprofileWithCompletion(callback)
但这是错误
无法转换类型'(responseInfo:ResponseInfo)的值 - >虚空'预期参数类型' RequestCallback!'
有谁知道我在这里做错了什么?我已经搜索了互联网寻求帮助,包括各种Apple文档,但要么我是盲目的还是误读,因为似乎没有任何工作。
提前致谢!
答案 0 :(得分:1)
只需删除responseInfo的类型规范,使用类型RequestCallback
let callback: RequestCallback = { responseInfo -> Void in
if let organization: Organizations = Organizations.organizationWithId(orgId) {
completionBlock(false, nil)
} else {
self.switchOrganization(user, organization: organization, completionBlock: completionBlock)
}
}
Users.getCurrentUserprofileWithCompletion(callback)