よくある質問

Xcode でビルドできない。

ビルドの問題をデバッグするをご覧ください。

ビルド時の「未定義のシンボル」エラーを修正するにはどうすればよいですか?

必要なリンク設定をご覧ください。

コマンドラインで j2objc を使用できません。

j2objc のコマンドラインを最もすばやく作成するには、javac から始めて、クラスパス(省略可)、ソースパス(省略可)、出力ディレクトリ、ソースファイルのリストを指定します。正常にコンパイルされたら、「javac」を「j2objc」に置き換え、j2objc 固有のフラグを追加します。これが機能する理由は、j2objc がフロントエンドとして Java コンパイラを使用し、コンパイラと同じ引数を使用するためです。コンパイルされないと、翻訳されないのでご注意ください。

ガベージ コレクションの処理方法

メモリ管理をご覧ください。Google は、Xcode の漏洩検出およびプロファイリング ツールを使用して、生成されたコードを引き続き改善し、メモリの管理方法を改善しています。J2ObjC を使用するプロジェクトでは、(すべての iOS プロジェクトと同様に)パフォーマンスと漏洩検出もモニタリングし、見つかった問題を報告することをおすすめします。

変換後のコードサイズを縮小するにはどうすればよいですか?翻訳のスピードを上げるには?

デッドコードの除去をご覧ください。

j2objc は .java ファイル内のインポートをどのように処理しますか?

j2objc は javac コンパイラをフロントエンドとして使用するため、すべてのインポートは Java コンパイラと同じように読み取られます。インポートされるクラスの場所を指定するには、javac で使用するのと同じ -classpath オプションと -sourcepath オプションを使用します。Objective-C ファイルを生成するときに、外部クラス参照が収集され、必要に応じて、生成されたヘッダー(.h)または実装ファイル(.m)に #import ディレクティブが追加されます。

数値型の最小値と最大値の一部が Java 仕様と異なるのはなぜですか?

これらの値は Java が返す値とは異なります。これらの値は、Objective-C コンパイラが有効な値として受け入れる値の範囲外であるためです。代わりに、/usr/include/values.h で定義されている最小値と最大値を使用します。