gpt4 book ai didi

objective-c - 在 Objective-C 中使用带有可为空字符串值的 Swift 完成 block

转载 作者:行者123 更新时间:2023-11-28 05:57:18 24 4
gpt4 key购买 nike

我有一个 Swift 函数,其签名如下:

func detectLanguage(forString string: String, completion: @escaping (String?) -> Void)

在某些情况下它返回一个字符串,在其他情况下它返回 nil。

当我在我的 obj-c 文件中自动完成时,这就是我得到的:

[translator detectLanguageForString:@"foo" completion:^(NSString * _Nonnull) {
// some code
}];

如果我稍微改变 block :

[translator detectLanguageForString:@"foo"completion:^(NSString *lang _Nullable) {

Xcode 抛出一个非常模糊的错误:

Expected ')'

我怎样才能正确地让这个完成 block 安全地工作?谢谢。

最佳答案

Objective-C 代码块需要一个参数,它位于类型之后NSString * _Nullable:

[translator detectLanguageForString:@"foo" completion:^(NSString * _Nullable lang) {
// ...
}];

关于objective-c - 在 Objective-C 中使用带有可为空字符串值的 Swift 完成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51089936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com