循環参照について

Objective-cを書いてるとコンパイル時に問題となるので、まとめ。

循環参照はAファイルのヘッダーにBファイルをインポート、BファイルのヘッダーにAファイルをインポートする事で発生する。

解決策としては、実装ファイルにインポートを記載し、ヘッダーファイルでインポートが必要な場合は、@Classで定義する。

以下、実装する時の注意

・自分が作ったクラス、プロトコル等を他のクラスで使用する場合は、実装ファイルで import する。
・ヘッダファイルで出てくる場合 @class, @protocol で宣言する。
フレームワーク等の、循環参照しないものは ヘッダファイルで import する。
↓以下記事のまとめを抜粋

【参考】
#import の使いどころ:循環参照しないために。 - webとかmacとかやってみようか - http://d.hatena.ne.jp/dice-t/20101215/1292392076

以上、おみくじを引いたら、悪ければ、杉(過ぎる)にくくりるけ、良ければ、松(待つ)にくくりつけることを最近知った堀でした。