我正在尝试将Java可空性注释转换为Objective-C,以在Swift中获得Optionals,但没有任何反应,方法的签名保持不变。

这是Java代码:

import javax.annotation.Nullable;
import com.google.j2objc.annotations.ObjectiveCName;

public class UserValidation {
    @Nullable
    @ObjectiveCName(value = "getFormattedUserId:")
    public static String getFormattedUserId(@Nullable String userId) {}
}


经过翻译后,我得到:

+ (NSString *)getFormattedUserId:(NSString *)userId;


代替:

+ (NSString * __nullable)getFormattedUserId:(NSString * __nullable)userId;


我想要这个签名罪过的斯威夫特:

class func getFormattedUserId(userId: String?) -> String?


我做错了什么?

非常感谢。

最佳答案

@tball的注释中的答案是正确的,它可以在--nullability标志中添加最新来源,而不是最新版本。

更多信息here

谢谢汤姆。

09-11 18:08