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.