變更方法名稱

ObjectiveCName 註解

您可以使用 @GoalCName 為任何 Java 方法加上註解,藉此變更該方法的翻譯名稱以及任何覆寫該方法的方法。例如:

@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 虛擬機器規格所定義。右側的定義包含 iOS 選取器 (也就是要傳送到 @selector() 的內容)。方法及其對應必須有相同數量的參數。

再舉一個例子,這一行與前一節中的範例一樣:

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

您可以使用 --mapping 選項,在指令列中指定其他對應檔案。