我有一个Swift函数,其签名如下:
func detectLanguage(forString string: String, completion: @escaping (String?) -> Void)
在某些情况下,它返回字符串,在其他情况下,它返回nil。
当我在obj-c文件中自动完成时,这就是我得到的:
[translator detectLanguageForString:@"foo" completion:^(NSString * _Nonnull) {
// some code
}];
如果我稍微改变一下方块:
[translator detectLanguageForString:@"foo" completion:^(NSString *lang _Nullable) {
Xcode抛出一个非常模糊的错误:
预期为')'
如何正确完成此完成区块?谢谢。
答案 0 :(得分:1)
Objective-C块需要一个参数,该参数位于类型之后
NSString * _Nullable
:
[translator detectLanguageForString:@"foo" completion:^(NSString * _Nullable lang) {
// ...
}];