Cómo cambiar los nombres de los métodos

Anotación de ObjectiveCName

Puedes anotar cualquier método Java con @ObjectiveCName para cambiar el nombre traducido de ese método y cualquier método que lo anule. Por ejemplo:

@ObjectiveCName("setTimeWithHours:minutes:seconds:")
public void setTime(int hours, int minutes, int seconds) {
  ...
}

se traduce de la siguiente manera:

- (void)setTimeWithHours:(jint)hours
                 minutes:(jint)minutes
                 seconds:(jint)seconds;

Archivo de asignación

Los nombres de los métodos se pueden cambiar con la marca --mapping, que toma un archivo de propiedades con las asignaciones que se usarán. Cada asignación de métodos se define con la firma del método Java completa para la clave y un valor del selector de Objective-C. Por ejemplo, la línea para asignar Object.equals() a NSObject.isEqual es la siguiente:

java.lang.Object.equals(Ljava/lang/Object;)Z = isEqual:

La declaración de la izquierda es la firma completa del método, como se define en la Especificación de máquina virtual Java. La definición de la derecha consiste en el selector de iOS (es decir, lo que pasarías a @selector()). El método y su asignación deben tener la misma cantidad de parámetros.

Como otro ejemplo, esta línea es equivalente al ejemplo de la sección anterior:

pkg.ClassName.setTime(III)V = setTimeWithHours:minutes:seconds:

Los archivos de asignación adicionales se pueden especificar en la línea de comandos mediante la opción --mapping.