Swift 2 - 在Obj-C中使用时的完成块语法

时间:2015-10-23 19:07:13

标签: ios objective-c swift

我有这个Swift块:

var onLoggedIn: ((sender:AnyObject?, showFTUE:Bool) -> ())?

尝试在Obj-C中使用它,而XCode 7自动填充为:

 [loginController setOnLoggedIn:^(id _Nullable, BOOL) {
        <#code#>
    }];

然后抛出错误告诉我parameter name is omitted。我尝试在不同位置插入参数showFTUE而没有运气。

在我的Swift翻译文件中,它被翻译为:

1 个答案:

答案 0 :(得分:1)

从Xcode 7开始,当您在.h(在obj-c中)声明的完成块没有名称(这是Xcode 7中的默认自动完成行为)时,它也将自动完成而不带参数名称。如您所见,您的块只有类型和_Nullable指令,只需在末尾添加参数名称。

[loginController setOnLoggedIn:^(id _Nullable parameterName1, BOOL parameterName1) {
        <#code#>
}];