자주 묻는 질문(FAQ)

Xcode로 빌드하는 데 문제가 있습니다.

빌드 문제 디버깅을 참조하세요.

빌드할 때 '정의되지 않은 기호' 오류를 수정하려면 어떻게 해야 하나요?

필수 링크 설정을 참고하세요.

명령줄에서 j2objc를 사용하는 데 문제가 있습니다.

j2objc의 명령줄을 만드는 가장 빠른 방법은 javac로 시작하여 클래스 경로 (선택사항), sourcepath (선택사항), 출력 디렉터리 및 소스 파일 목록을 지정하는 것입니다. 컴파일이 완료되면 'j2objc'를 'javac'로 대체하고 j2objc 관련 플래그를 추가합니다. 이렇게 하는 이유는 j2objc가 프런트엔드인 자바 컴파일러를 사용하여 컴파일러와 동일한 인수를 사용하기 때문입니다. 주의: 컴파일되지 않으면 번역할 수 없습니다.

가비지 컬렉션은 어떻게 처리되나요?

메모리 관리를 참고하세요. Google은 메모리 관리 방식을 개선하기 위해 Xcode의 누수 감지 및 프로파일링 도구를 사용하여 생성된 코드를 지속적으로 미세 조정하고 있습니다. 모든 iOS 프로젝트에서와 마찬가지로 J2ObjC를 사용하는 프로젝트에서 성능 및 유출 감지도 모니터링하고 발견된 문제를 보고하는 것이 좋습니다.

번역된 코드 크기를 어떻게 줄일 수 있을까요? 번역 속도를 높이려면 어떻게 해야 할까요?

데드 코드 제거를 참조하세요.

j2objc는 .java 파일 내부의 가져오기를 어떻게 처리하나요?

j2objc는 javac 컴파일러를 프런트엔드로 사용하므로 모든 가져오기가 모든 자바 컴파일러와 마찬가지로 읽힙니다. 가져온 클래스를 찾을 위치를 지정하려면 javac에서 사용하는 것과 동일한 -classpath 및 -sourcepath 옵션을 사용합니다. Objective-C 파일을 생성할 때 외부 클래스 참조가 수집되고 #import 지시어가 생성된 헤더 (.h) 또는 구현 (.m) 파일에 적절하게 추가됩니다.

숫자 유형의 최소값 및 최대값 중 일부가 Java 사양과 다른 이유는 무엇인가요?

이러한 값은 Objective-C 컴파일러가 유효하다고 허용하는 값을 벗어나기 때문에 자바에서 반환하는 값과 다릅니다. 대신 /usr/include/values.h에 정의된 최솟값과 최댓값을 사용합니다.