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.