Methodennamen ändern

ObjectiveCName-Annotation

Sie können jede Java-Methode mit @ObjectiveCName, um den übersetzten Namen und jeder anderen Methode, die sie überschreibt. Beispiel:

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

wird übersetzt als:

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

Zuordnungsdatei

Methodennamen können mit dem Flag --mapping geändert werden. Dieses verwendet eine Eigenschaftendatei mit dem Parameter Zuordnungen. Jede Methodenzuordnung wird mit der vollständigen Java-Methodensignatur für den Schlüssel definiert. Einen Objective-C-Selektorwert Die Zeile zum Zuordnen von Object.equals() zu NSObject.isEqual: lautet:

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

Bei der Deklaration auf der linken Seite handelt es sich um die vollständige Methodensignatur gemäß der Definition der Java Virtual Machine. Spezifikation. Das rechte Die Hand-Definition besteht aus dem iOS-Selektor (d.h. was Sie an @selector() übergeben würden). Die Methode und ihre Zuordnung müssen dieselbe Anzahl von Parametern haben.

Als weiteres Beispiel entspricht diese Zeile dem Beispiel im vorherigen Abschnitt:

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

Weitere Zuordnungsdateien können mit der Option „--mapping“ in der Befehlszeile angegeben werden.