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.