Modifier le nom des méthodes

Annotation ObjectiveCName

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

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

est traduit par:

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

Fichier de mappage

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

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

La déclaration de gauche correspond à la signature complète de la méthode, telle que définie par la machine virtuelle Java. Spécification. À droite de la main se compose du sélecteur iOS (c'est-à-dire ce que vous transmettriez à @selector()). La méthode et son mappage doivent comporter le même nombre de paramètres.

Dans cet autre exemple, cette ligne est équivalente à l'exemple de la section précédente:

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

Vous pouvez spécifier d'autres fichiers de mappage dans la ligne de commande, à l'aide de l'option --mapping.