swift - j2objc 无法快速调用返回 JavaIoInputStream 的方法

标签 swift j2objc

我的一个 java 类实现了 2 个方法:

public OutputStream getOutputStream(){
    return null;
}

public int getV(){
    return 3;
}

用 j2Objc 转换后,我尝试在 swift 中调用这些方法:

func test() {
    let i = ComExampleTestSharedMyClass()
    var v = d.getV()
    var s = d.getOutputStream()
}

实例化和 getV() 编译得很好,但 getOutputStream() 没有消息:

ComExampleTestSharedMyClass has no member getOutputStream.

在 MyClass.h 中,我可以看到两种翻译的方法:

- (jint)getV;
- (JavaIoOutputStream *)getOutputStream;

明显的区别在于作为 jre_emul 一部分的返回类型。

出于测试目的,我在 Objective-C 中做了一个测试(我的第一次尝试!):

#import "Configurator-Bridging-Header.h"

@implementation TestGetOutputStream

- (void) theTest{
    ComExampleTestSharedMyClass* i = [ComExampleTestSharedMyClass alloc];
    [i getOutputStream];
}
@end

它使用 objective-C 编译,那么我可以为 swift 做什么?

最佳答案

好吧,我被编译器消息愚弄了,说这个类没有请求的方法,而实际上,它是方法的返回类型 那是未知的。

如果我在桥接 header 中添加#import "OutputStream.h",它会起作用。

关于swift - j2objc 无法快速调用返回 JavaIoInputStream 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44606593/

相关文章:

java - J2Objc Eclipse 插件 "error: --ignore-missing-imports is no longer supported"

arrays - Rx swift : observe an array stored in UserDefaults

ios - 无法导入桥接头

swift - 解析 JSON - Alamofire

java - 如何使用j2objc在objectiveC ios项目中使用.jar库?

java - Google 的 j2objc 可以处理和转换二进制 JAR 文件吗?

arrays - 获取数组中具有 Swift 中最低值的字典对象

Swift 在 TableViewCell 上显示重叠按钮

java - 使用 J2ObjC Gradle 插件排除测试