Como alterar nomes de métodos

Anotação ObjectiveCName

Você pode anotar qualquer método Java com @ObjectiveCName para alterar o nome traduzido desse método e qualquer método que o modifique. Exemplo:

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

é traduzido como:

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

Arquivo de mapeamento

Os nomes dos métodos podem ser alterados usando a sinalização --mapping, que usa um arquivo de propriedades com os mapeamentos a serem usados. Cada mapeamento de método é definido com a assinatura completa do método Java para a chave e um valor de seletor do Objective-C. Por exemplo, a linha para mapear Object.iguals() para NSObject.isEqual: é:

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

A declaração à esquerda é a assinatura completa do método, conforme definido pela Especificação de máquina virtual Java. A definição à direita consiste no seletor do iOS (ou seja, o que você passaria para @seletor()). O método e o mapeamento dele precisam ter o mesmo número de parâmetros.

Como outro exemplo, esta linha é equivalente ao exemplo da seção anterior:

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

Arquivos de mapeamento adicionais podem ser especificados na linha de comando com a opção --mapping.