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.