Modifica dei nomi di metodi

Annotazione ObjectiveCName

Puoi annotare qualsiasi metodo Java con @ObjectiveCName per modificare il nome tradotto di quel metodo e qualsiasi metodo che lo sostituisca. Ad esempio:

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

viene tradotto come:

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

File di mapping

I nomi dei metodi possono essere modificati utilizzando il flag --mapping, che accetta un file delle proprietà con la proprietà mapping da usare. Ogni mappatura dei metodi viene definita con la firma completa del metodo Java per la chiave e un valore del selettore Objective-C. Ad esempio, la riga per mappare Object.equals() a NSObject.isEqual: è:

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

La dichiarazione di sinistra è la firma completa del metodo, come definita dalla Java Virtual Machine Specifiche. A destra la definizione della mano è composta dal selettore iOS (ossia ciò che passeresti a @selector()). Il metodo e la relativa mappatura devono avere lo stesso numero di parametri.

Come ulteriore esempio, questa riga è equivalente all'esempio della sezione precedente:

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

È possibile specificare altri file di mapping dalla riga di comando, utilizzando l'opzione --mapping.