常見問題

我無法順利使用 Xcode 進行建構。

請參閱偵錯建構問題

如何修正建構時「未定義符號」的錯誤?

請參閱必要的連結設定

我無法順利透過指令列使用 j2objc。

想出 j2objc 的指令列,最快的方法就是從 javac 開始,並指定類別路徑 (選用)、來源路徑 (選用)、輸出目錄和來源檔案清單。成功編譯後,請以「j2objc」取代「javac」,並新增任何 j2objc 專屬標記。這是因為 j2objc 是以前端的方式使用 Java 編譯器,因此會使用與編譯器相同的引數。請記住:如果不編譯,就無法翻譯!

垃圾收集的處理方式

請參閱「記憶體管理」。我們持續使用 Xcode 的外洩偵測和剖析工具修改產生的程式碼,以改善記憶體的管理方式。我們建議使用 J2ObjC 的專案一併監控效能和外洩偵測情形 (我們建議所有 iOS 專案都應這麼做),並回報發現的問題。

如何縮減經過翻譯的程式碼大小?如何加快翻譯速度?

請參閱「淘汰無效程式碼」一文。

j2objc 如何處理 .java 檔案內的匯入作業?

j2objc 使用 javac 編譯器做為前端,因此所有匯入作業都會如同所有 Java 編譯器一樣讀取。如要指定尋找匯入類別的位置,請使用與 javac 相同的 -類別路徑和 -sourcepath 選項。產生 Objective-C 檔案時,系統會收集外部類別參照,並視情況將 #import 指令加入產生的標頭 (.h) 或實作 (.m) 檔案中。

為什麼數字類型的部分最小值和最大值與 Java 規格不同?

這些值與 Java 傳回的值不同,因為這些值不在 Objective-C 編譯器接受的範圍內。我們會改用 /usr/include/values.h 定義的最小值和最大值。