すべてIBOutlets
を作る必要はありませんweak
。Apple ドキュメントからの推奨事項(リソース プログラミング ガイド)
ファイルの所有者から nib ファイル (または、iOS ではストーリーボード シーン) 内の最上位オブジェクトへのアウトレットを除いて、アウトレットは一般的に弱くする必要があります。したがって、作成するアウトレットは通常、弱いものにする必要があります。理由は次のとおりです。
例:
XIB の最上位オブジェクトを宣言する必要がありstrong
、その他のサブビュー/コントロールはすべてweak
プロパティにする必要があります。
@property (nonatomic, weak) IBOutlet MyView *viewContainerSubview;
@property (nonatomic, strong) IBOutlet MyOtherClass *topLevelObj;
ARCweak
ライフタイム修飾子を使用すると、独自の利点があります(Appleドキュメントを参照)。
__weak は、参照先のオブジェクトを存続させない参照を指定します。オブジェクトへの強い参照がない場合、弱い参照は nil に設定されます。
そのため、の設定について心配する必要はありませんIBOutlets
nil
。その有効期間は、最上位のインスタンスによって自動的にバインドされます。
didReceiveMemoryWarning
メモリを占有している再作成可能なリソースをクリアするために実装する必要があります。呼び出しを受け取ったらdidReceiveMemoryWarning
、それを使用して、使用されている重要でないリソースを解放する必要があります。たとえば、カスタム データ構造、UI の入力に使用される Web サービス レスポンスなどです。重要でないリソースは、開発者が決定する必要があります。