Como alterar nomes de métodos

Anotação ObjectiveCName

Você pode anotar qualquer método Java com @ObjectiveCName para alterar o nome traduzido do esse método e os métodos que o substituem. 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 pega um arquivo de propriedades com o mapeamentos disponíveis. Cada mapeamento de método é definido com a assinatura do método Java completa para a chave e um valor de seletor de Objective-C. Por exemplo, a linha para mapear Object.equals() para NSObject.isEqual: é:

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

A declaração à esquerda é a assinatura do método completo, conforme definido pela máquina virtual Java Especificação. O lado direito A definição manual consiste no seletor do iOS (isto é, o que você passaria para @seletor()). O método e o respectivo mapeamento 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:

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