2

Apple は、Nib ファイル内のすべての最上位オブジェクトに対して、File's Owner に Outlets が必要であると言っています。

私の知る限り、これらのオブジェクトはファイルの所有者そのものではなく (意味がありませんよね?)、ファーストレスポンダでもありません。

不明な点: Nib の View オブジェクト、および nib のコントローラー オブジェクト。File's Owner にあるユーザー用のコンセントが必要ですか?

この質問は、メモリ管理に関するものです。彼らが言うには:

これらのオブジェクトへのポインターは常にどこかに保持する必要があります。これは、アプリケーションがそれらを使用した場合にそれらを解放する責任があるためです。

ユーザーがアプリを閉じたときに、それらのアウトレットを見逃すと、不格好なメモリリークが発生するでしょうか?

4

1 に答える 1

3

そのとおりです。Nib ファイルのファイルの所有者は、その nib へのエントリ ポイントです。あなたの nib の外にあるものはファイルの所有者以外のものを参照できないので、ファイルの所有者だけが nib の他のトップレベルの項目を参照できます。ファイルの所有者がそれらを参照しない場合、nib が不要になったときにそれらのオブジェクトを解放する方法はなく、それらはメモリ内でぶらぶらします。

ニブのライフサイクルは次のようなものです。

  1. nib がロードされ、ファイルの所有者が指定したオブジェクトに関連付けられます。
  2. nib 内のすべての最上位オブジェクトにメモリが割り当てられます。
  3. すべてのコンセントは、ペン先で指定されているように接続されています。
  4. ...事が起こります...
  5. File's Owner オブジェクトに解放メッセージが送信されます。
  6. ファイルの所有者は、そのアウトレットに接続されているすべてのオブジェクトを解放します。

ご覧のとおり、最後のステップで解放されなかった場合、2 番目のステップで割り当てられたオブジェクトはメモリ内にまだ浮かんでいます。

于 2009-04-24T16:53:46.740 に答える