1

我定义了一个名为 SexType 的枚举,并希望使用如下:

public class People {
    //@Property("copy, nonatomic") protected String location;
   // @Property("copy, nonatomic") protected SexType sex;
   public String name;
   public SexType sex;
   public People(String name){
     this.name = name;
  }

  public String say(String text){
        return this.name + " say:" + text;
  }

public void setName(String name){
    this.name = name;
}

}

它在 java 端运行正常,但在转换为 objC 时失败,错误是“SexType 无法解析为类型”。谁知道原因?

谢谢

4

1 回答 1

1

j2objc 是一个 Java 编译器(它使用 Eclipse 的 JDT 作为其前端),并且需要与 javac 相同的路径标志。由于“无法解析为类型”是 Java 编译器错误,这意味着-sourcepath标志可能不正确,因为这是 Java 编译器在其他 Java 源文件中定位类型的方式。

在 j2objc 命令行中验证正确的源和类路径的快速方法是在 javac 命令中使用相同的标志,修复任何编译错误,然后在 j2objc 命令中使用相同的路径。要查看 Xcode 失败的命令,请在其构建规则中的 j2objc 命令前面放置一个“echo”,构建应用程序,然后展开“Run shell script build rule on ...”日志条目以查看该命令.

命令日志的第二行有一个“cd”命令,打开一个终端窗口并运行该行,这样你就进入了 Xcode 使用的工作目录。类型javac -sourcepath ../../j2ObjcDemon_SharedLib/src/main和指向其中一个或两个 Java 源的路径。修复源路径,直到 javac 可以编译这些文件,然后在 j2objc 构建规则中使用固定路径。

于 2016-05-27T17:06:46.517 回答