Preguntas frecuentes

Tengo problemas para compilar con Xcode.

Consulta Cómo depurar problemas de compilación.

¿Cómo soluciono los errores de "símbolo sin definir" durante la compilación?

Consulta Configuración de vínculos obligatoria.

Tengo problemas para utilizar j2objc en la línea de comandos.

La forma más rápida de crear una línea de comandos para j2objc es comenzar con javac y especificar la ruta de clase (opcional), la de origen (opcional), el directorio de salida y la lista de archivos de origen. Una vez que se compile correctamente, reemplaza "j2objc" por "javac" y agrega cualquier marca específica de j2objc. Esto funciona porque j2objc usa un compilador de Java como frontend y, por lo tanto, utiliza los mismos argumentos que el compilador. Recuerda: si no se compila, no se puede traducir.

¿Cómo se maneja la recolección de elementos no utilizados?

Consulta Administración de memoria. Seguimos perfeccionando el código generado para optimizar la administración de la memoria mediante las herramientas de detección de fugas y generación de perfiles de Xcode. Recomendamos que los proyectos que usan J2ObjC también supervisen el rendimiento y la detección de fugas (como deben hacerlo todos los proyectos de iOS) y que informen cualquier problema que se encuentre.

¿Cómo se puede reducir el tamaño del código traducido? ¿Qué puede hacer que la traducción sea más rápida?

Consulta Eliminación de código muerto.

¿Cómo maneja j2objc las importaciones dentro de los archivos .java?

j2objc usa el compilador javac como frontend, por lo que todas las importaciones se leen como lo haría cualquier compilador de Java. Para especificar dónde encontrar las clases importadas, usa las mismas opciones -classpath y -sourcepath que usarías con javac. Cuando se generan archivos Objective-C, se recopilan referencias de clase externas y se agregan directivas #import a los archivos de encabezado (.h) o de implementación (.m) generados, según corresponda.

¿Por qué algunos de los valores mínimos y máximos para los tipos numéricos son diferentes de la especificación de Java?

Estos valores son diferentes de lo que muestra Java porque están fuera de lo que el compilador de Objective-C aceptará como válido. En su lugar, usamos los valores mínimo y máximo definidos en /usr/include/values.h.