我的一个 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/