1

私のobj-cクラスは、Obj-Cラッパーインターフェイスを備えたCライブラリ(Chipmunk物理エンジン)を使用しています。

次のように、シマリスタイプ(cpLayers)のプロパティをオブジェクトに追加したいと思います。

@interface
@property cpLayers layers;
...

最も簡単な方法は#import"ObjectiveChipmunk.h"ですが、1つの簡単なタイプを取得するためだけにすべてのヘッダーをインポートするのはばかげているようです。

cpLayersが定義されているC"chipmunk_types.h"ファイル"typedefunsigned int cpLayers;"を#importすると、ARCに関連するコンパイラエラーが発生します。これらは、chipmunk_types.hで定義され、私の.mファイルで使用されているマクロのブリッジ/キャストエラーです。

定義だけを追加するか、#include chipmunk_types.hを追加すると、再定義エラーが発生します。

これを行うためのより良い方法はありますか?そして、なぜARCエラーなのですか?

4

1 に答える 1

1

ObjectiveChipmunk.hを見てください。これは、プリプロセッサ定義を使用して基本的なChipmunkタイプをオーバーライドする場所です。問題を回避したい場合は、これらの定義をコンパイラフラグとして追加できますが、私はそれほど心配していません。結局のところ、あなたはすでにObjective-Cプログラミングを行っていますが、Foundation.hのように無害なものをインポートしたときに引き込まれる膨大な量のインクルードを見たことがありますか?完全なObjectiveChipmunk.hヘッダーをインポートすることは、比較すると1%のようです。

于 2012-06-23T14:57:19.647 に答える