子のヘッダーファイルで前方宣言()と親()への弱参照を使用することもできますが、これは一般的に適切なプログラミング手法ではありません。@class ParentClass
@property (nonatomic, weak) ParentClass *parent
これが一般的に良い考えではない理由:
1)プロジェクトが大きくなると、子が特定のクラスの親を必要とするため、DRY(「自分を繰り返さないでください」)に違反する可能性があります...後で別の親が同じ子オブジェクトを作成する必要がある場合はどうなりますか? ?新しい親の別のフォワードクラスを宣言し、それに弱いプロパティを持つ新しいクラスを作成する必要があります。
2)これもスパゲッティコードにつながる可能性があります...子供が使用しているメソッドに影響を与える新しい機能を親に追加したい場合はどうなりますか?少し異なる、新しいが類似したメソッドを作成しますか(DRYの違反についてはポイント1を参照)。元のメソッドへの入力を作成しますか(子がこの変更を認識し、適切な入力を渡すことも確認する必要があります)。
代わりに、ここではDelegationデザインパターンの方がうまく機能します。Appleはまた、ライブラリ全体でこれを頻繁に使用しています。たとえば、UITableView
デリゲートとデータソースを宣言して、UITableView
オブジェクトが親クラスの実装について知る必要なしに、アクション(セルのクリック)とデータ入力(カスタムセルの作成)を他の所有クラスに委任できるようにします。
一般的な委任パターンの詳細については、こちらのWikipediaを参照してください。
http://en.wikipedia.org/wiki/Delegation_pattern
独自の作成に関するチュートリアルprotocols
(iOSでの委任の実装方法)については、次のチュートリアルを参照してください。
http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-custom-delegates/
委任やその他の必要なiOSの概念を含む、iOS全般に関する高品質のチュートリアルと紹介については、RayWenderlichのサイトも参照してください。
http://www.raywenderlich.com/
幸運を!