相互に参照するクラスの宣言

Cocoaに関するヌマタメモ
2008年11月29日 23:43

MyObjectAクラスのヘッダファイルの冒頭に、

@class MyObjectB, MyObjectC;

のように宣言しておくと、MyObjectB と MyObjectC はどこかで宣言されているということになって、これらのクラスへのポインタ変数が定義できるようになる。実装の記述を行う MyObjectA.m ファイルでは、MyObjectA.h を読み込んだあとに、MyObjectB.h と MyObejctC.h を読み込んでおくこと。

基本的な方策としては、ヘッダファイルでは @class 宣言しかせずに、実装ファイルで他のクラスのヘッダファイルを #import するようにすると、分かりやすい。

もっとも、enum 等の宣言が含まれている ヘッダファイルの読み込みに関してはそうもいかないのだが。。。

コメントを書く


トラックバックはありません。

トラックバックURL: http://numata.designed.jp/mt-tb.cgi/91