Zmiana nazw metod

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.