j2objc无法在swift

时间:2017-06-17 16:03:31

标签: swift j2objc

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

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()
}

Instantiation和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做些什么呢?

1 个答案:

答案 0 :(得分:0)

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

如果我添加#import" OutputStream.h"它可以工作。在桥接标题中。