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.