6

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

ただし、アウトレットに格納しない最上位オブジェクトがある場合は、loadNibNamed:owner:options: メソッドによって返される配列または配列内のオブジェクトのいずれかを保持して、それらのオブジェクトが時期尚早に解放されるのを防ぐ必要があります。

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

4

3 に答える 3

6

トップレベル オブジェクトは、Interface Builder のメイン nib ウィンドウに表示されるオブジェクトで、File's Owner と Application は除きます。

于 2009-04-30T00:28:48.883 に答える
3

はい、これはNibを手動でロードする場合についてです。

于 2009-04-29T22:36:13.660 に答える
0

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

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

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

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

于 2010-11-10T03:31:22.157 に答える