私の1人には、UIViewControllerいくつかの子ViewControllerがあります。それらは、左側の「オブジェクト」セクションにドラッグして、 「カスタムクラス」としてNSObject自分のものに入れることにより、インターフェイスビルダー内に構築されます。SpecialViewControllerこの設定でviewDidLoad、ビューとコントローラーの準備が整います。ワークフローは、次のスクリーンショットで示されています。

そして私の実装では、私は持っています:
@interface ParentController : UIViewController
{
SpecialViewController *svc;
}
@property (nonatomic, retain) IBOutlet SpecialViewController *svc;
私が理解しているようにdidReceiveMemoryWarning、私は自分のリソースを解放する必要があります。次にIBOutlets、の間にnilに設定しviewDidUnloadます。
シミュレーターで低メモリをシミュレートするとクラッシュが発生し、デバッガーはdidReceiveMemoryWarningof SpecialViewController(本体はちょうど[super didReceiveMemoryWarning];)で一時停止し、エラーが発生しますEXC_BAD_ACCESS (code=1, address=0xe0000008)。現時点では、親コントローラーは表示されていないため、安全に解放できます。
親コントローラーには、にのみ含ま[super didReceiveMemoryWarning];れdidReceiveMemoryWarningます。私はIBOutlets両方のクラスでnilingを試しました。それは役に立たなかった。
なぜこれが起こったのか考えていますか?
ARCでiOS4と5をターゲットにしています。SpecialViewControllerのサブクラスですUITableViewController。
トレースを通して、私はそれParentController didReceiveMemoryWarningが前に呼び出されていることを発見しましたSpecialViewController。