我正在编写一些我想在Objective-C中使用的Swift代码。标题都是自动生成的,但是当使用闭包(在objective-c中成为块)时,变量名称将丢失。
例如:
@objc public func doSomething(success: (result: String) ->());
变为
-(void)doSomething:(NSString * _Nonnull)success;
我本来期望的那样:
-(void)doSomething:(NSString * result)success;
这是一个XCode错误还是有办法指定变量应该命名的内容?
答案 0 :(得分:0)
// what you have
func boo(mf: String->Void) { mf("alfa") }
boo { (str) -> Void in
print(str)
} // "alfa"
// try this
func foo(str: String) { print(str + " beta") }
// and see the signature in Objective C
boo(foo)
/*
alfa
alfa beta
*/