MyObjectAクラスのヘッダファイルの冒頭に、
@class MyObjectB, MyObjectC;
のように宣言しておくと、MyObjectB と MyObjectC はどこかで宣言されているということになって、これらのクラスへのポインタ変数が定義できるようになる。実装の記述を行う MyObjectA.m ファイルでは、MyObjectA.h を読み込んだあとに、MyObjectB.h と MyObejctC.h を読み込んでおくこと。
基本的な方策としては、ヘッダファイルでは @class 宣言しかせずに、実装ファイルで他のクラスのヘッダファイルを #import するようにすると、分かりやすい。
もっとも、enum 等の宣言が含まれている ヘッダファイルの読み込みに関してはそうもいかないのだが。。。
コメントを書く