Adnotacja ObjectiveCName
Do każdej metody w Javie możesz dodać adnotacje za pomocą @ObjectiveCName, aby zmienić przetłumaczoną nazwę i innych metod, które ją zastępują. Na przykład:
@ObjectiveCName("setTimeWithHours:minutes:seconds:")
public void setTime(int hours, int minutes, int seconds) {
...
}
jest tłumaczony jako:
- (void)setTimeWithHours:(jint)hours
minutes:(jint)minutes
seconds:(jint)seconds;
Plik mapowania
Nazwy metod można zmieniać za pomocą flagi --mapping, która pobiera plik właściwości z do wykorzystania. Każde mapowanie metod jest zdefiniowane za pomocą pełnego podpisu metody Java dla klucza. wartość selektora Objective-C. Na przykład wiersz do zmapowania obiektu Object.Equals() na NSObject.isEqual: to:
java.lang.Object.equals(Ljava/lang/Object;)Z = isEqual:
Deklaracja po lewej stronie to podpis pełnej metody, zgodnie z definicją maszyny wirtualnej Java Specyfikacja. Po prawej definicja dłoni składa się z selektora iOS (tj. danych przekazywanych do funkcji @selector()). Metoda i jej mapowanie muszą mieć tę samą liczbę parametrów.
Ten wiersz odpowiada kolejnemu przykładowi w poprzedniej sekcji:
pkg.ClassName.setTime(III)V = setTimeWithHours:minutes:seconds:
Dodatkowe pliki mapowania można określić w wierszu poleceń przy użyciu opcji --mapping.