Modifier le nom des méthodes

Annotation ObjectifCName

Vous pouvez annoter n'importe quelle méthode Java avec @GoalCName pour modifier le nom traduit de cette méthode et de toute méthode qui le remplace. Exemple :

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

est traduit comme suit:

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

Fichier de mappage

Les noms de méthodes peuvent être modifiés à l'aide de l'indicateur --mapping, qui accepte un fichier de propriétés contenant les mappages à utiliser. Chaque mappage de méthodes est défini avec la signature complète de la méthode Java pour la clé et une valeur de sélecteur Objectif-C. Par exemple, la ligne permettant de mapper Object.equals() à NSObject.isEqual est la suivante :

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

La déclaration de gauche constitue la signature complète de la méthode, telle que définie par la spécification de la machine virtuelle Java. La définition de droite comprend le sélecteur iOS (c'est-à-dire ce que vous devez transmettre à @selector()). La méthode et son mappage doivent comporter le même nombre de paramètres.

Cette ligne équivaut à l'exemple de la section précédente:

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

D'autres fichiers de mappage peuvent être spécifiés dans la ligne de commande à l'aide de l'option --mapping.