Как использовать enum в j2Objc
Я определяю перечисление с именем 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 не может быть разрешен для типа". Кто знает причину?
Спасибо
1 ответ
j2objc - это компилятор Java (он использует JDT Eclipse в качестве внешнего интерфейса) и требует тех же флагов пути, что и javac. Так как "класс не может быть преобразован в тип" является ошибкой компилятора Java, это означает, что вполне вероятно, что -sourcepath
флаг указан неверно, поскольку компиляторы Java находят типы в других исходных файлах Java.
Быстрый способ проверить правильность пути к источнику и классу в командной строке j2objc - это использовать те же флаги в команде javac, исправить все ошибки компиляции, а затем использовать те же пути в команде j2objc. Чтобы увидеть, с какой командой Xcode терпит неудачу, поместите "echo " перед командой j2objc в ее правиле сборки, соберите приложение, а затем разверните запись журнала "Run build script script on ...", чтобы увидеть команду,
Во второй строке журнала команд есть команда "cd ", откройте окно терминала и запустите эту строку, чтобы вы оказались в рабочем каталоге, который использует XCode. Тип javac -sourcepath ../../j2ObjcDemon_SharedLib/src/main
и путь к одному или обоим источникам Java. Исправьте исходный путь до тех пор, пока javac не сможет скомпилировать эти файлы, затем используйте фиксированный путь в правиле сборки j2objc.