どの“トップレベルオブジェクト” AppleはMemory Management Programming Guideで話しているのですか?

StackOverflow https://stackoverflow.com/questions/804539

  •  03-07-2019
  •  | 
  •  

質問

Cocoaのメモリ管理プログラミングガイド Appleはトップレベルオブジェクトについて語っています。彼らは、私はそれぞれにコンセントが必要だと言っています。

  

トップレベルのオブジェクトがある場合、   コンセントに保管しないでください   返された配列を保持する必要があります   loadNibNamed:owner:optionsによって:   メソッドまたは配列内のオブジェクト   それらのオブジェクトが   時期尚早にリリースされました。

「トップレベルオブジェクト」とはどういう意味ですか?私は彼らがルートビューとウィンドウについて話すと言うでしょう。ほかに何か?そして、このヒントは、ペン先を手動でロードしたい場合のためだけですか?または、ペン先やケースに適用されますか?

役に立ちましたか?

解決

トップレベルのオブジェクトは、File’の所有者とアプリケーション以外の、Interface Builderのメインnibウィンドウに表示されるオブジェクトです。

他のヒント

はい、これはペン先を手動でロードする場合に関するものです。それ以外の場合は、 loadNibNamed:owner:options:を呼び出さなかったでしょう。

File's Owner、First Responder、Viewでウィンドウに表示されるオブジェクトは、トップレベルのオブジェクトです。ビューに追加するものはすべてサブビューになります。すべてのサブビューは直接のスーパービューによって保持されるため、他の場所に保持する必要はありません。ビュー自体はView Controllerによって保持されるため、保持する必要はありません。

非ビューオブジェクト、またはメインビューにすぐに入れないビュー(現在表示されていないツールバーボタンなど)を追加する場合、それらを保持する必要があります。そうしないと、それらは解放されます。これを行うための私の好ましい方法は、次のように@propertyを使用するIBOutletsを使用することです。

@property(nonatomic, retain) IBOutlet UIBarButtonItem * myButton;

これにより、ファイルの所有者で-setMyButton:が呼び出され(このコードがファイルの所有者にある場合)、IBを介して接続されたオブジェクトが送信され、このプロパティに格納されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top