Yöntem Adlarını Değiştirme

ObjectiveCName Ek Açıklaması

Herhangi bir Java yöntemine @ObjectiveCName ekleyerek söz konusu yöntemin çevrilmiş adını ve onu geçersiz kılan herhangi bir yöntemi değiştirebilirsiniz. Örneğin:

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

şu şekilde çevrildi:

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

Eşleme Dosyası

Yöntem adları, kullanılacak eşlemeleri içeren bir özellik dosyası alan --mapping işareti kullanılarak değiştirilebilir. Her yöntem eşlemesi, anahtar için tam Java yöntemi imzası ve bir Objective-C seçici değeriyle tanımlanır. Örneğin, Object.equals() ile NSObject.isEqual: eşlenecek satır:

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

Soldaki bildirim, Java Sanal Makine Spesifikasyonu tarafından tanımlandığı gibi tam yöntem imzasıdır. Sağdaki tanım, iOS seçiciden (@selector() işlevine ileteceğiniz öğe) oluşur. Yöntem ve eşlemesi aynı sayıda parametreye sahip olmalıdır.

Başka bir örnek olarak, bu satır önceki bölümde verilen örnekle eşdeğerdir:

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

Komut satırında --mapping seçeneği kullanılarak ek eşleme dosyaları belirtilebilir.