ביאור ObjectiveCName
אפשר להוסיף הערות לכל שיטת Java עם @ObjectiveCName כדי לשנות את השם המתורגם של ה-method הזה וכל שיטה שמחליפה אותה. לדוגמה:
@ObjectiveCName("setTimeWithHours:minutes:seconds:")
public void setTime(int hours, int minutes, int seconds) {
...
}
מתורגמת כך:
- (void)setTimeWithHours:(jint)hours
minutes:(jint)minutes
seconds:(jint)seconds;
קובץ מיפוי
אפשר לשנות שמות של שיטות באמצעות הדגל --mapping, שמקבל קובץ מאפיינים עם המאפיין מיפויים לשימוש. כל מיפוי שיטה מוגדר עם חתימת שיטת Java המלאה למפתח, וגם ערך בורר Objective-C. לדוגמה, השורה למיפוי Object.equals() ל-NSObject.isEqual: היא:
java.lang.Object.equals(Ljava/lang/Object;)Z = isEqual:
ההצהרה בצד שמאל היא חתימת השיטה המלאה, כפי שמוגדר על ידי Java Virtual Machine מפרט. מימין הגדרה ידנית כוללת את הסלקטור ב-iOS (כלומר, מה שהייתם מעבירים אל @selector() ). לשיטה ולמיפוי שלה צריך להיות מספר זהה של פרמטרים.
דוגמה נוספת, השורה הזו מקבילה לדוגמה שבקטע הקודם:
pkg.ClassName.setTime(III)V = setTimeWithHours:minutes:seconds:
ניתן לציין קובצי מיפוי נוספים בשורת הפקודה, באמצעות האפשרות --mapping.