2

XCodeの欠陥なのか、Obj-Cの経験不足なのかはわかりませんが、一方のクラスに他のクラスへのポインタを含むプロパティを作成しようとして、もう一方のクラスにプロパティがある場合に問題が発生しました。ファーストクラスへのポインタを含みます。

上記が明確でないかもしれないことを私は知っていますが、うまくいけば、この例は私が何を意味するかを示しています:

//Class Journal.h

@property (strong) JournalVC *JVC

//Class JournalVC.h
//IVar
Journal *_Journal

どちらのクラスでも、XCodeがもう一方のクラスを認識できるように、もう一方のヘッダーをインポートします。ヘッダーをインポートしないと、プロパティ/ IVarのタイプがわからず、そのクラスに置き換えたいと文句を言います(JournalVC as Journalまたはその逆)。これは、両方のクラスにもう一方のヘッダーのインポートステートメントがある場合にも発生します。

一方だけが他方を知っている場合、これは起こりません。JournalVCがUIVIewController(その親クラス)に置き換えられ、インポートステートメントがない場合に機能しますが、IVarは同じままで、そのヘッダーはもう一方をインポートします。

問題は、両方のヘッダーが相互にインポートしていることであり、XCodeとの混乱を引き起こしていると思います。この問題なしに、ヘッダーファイルの1つにプロパティのクラスを知らせる他の方法はありますか?

4

1 に答える 1

5

@class前方宣言を使用できます。循環ヘッダーインポートを行わないでください。代わりに、JournalVCヘッダーで次の行を使用してJournalクラスを宣言するだけです。

@class Journal;

次に、で従来のヘッダーインポートを実行しJournalVC.mます。詳細については、この質問を参照してください。

于 2012-07-18T16:32:06.057 に答える