1

公式ドキュメントには、「ニブオブジェクト」のメモリを正しく管理するために、これら3つのことを実行する必要があると書かれています。

@property (nonatomic, retain) IBOutlet UIUserInterfaceElementClass *anOutlet;

「次に、対応するアクセサメソッドを合成するか、宣言に従ってそれらを実装し、(iPhone OSの場合)deallocで対応する変数を解放する必要があります。」

- (void)viewDidUnload {
    self.anOutlet = nil;
    [super viewDidUnload];
}

これは通常のビューには意味があります。ただし、UITableViewCells.nibファイルを介してカスタムがロードされたUITableViewに対して、これをどのように行うのでしょうか。

MyCustomCell.h(UITableViewCellから継承)にありIBOutletsますが、MyTableView.mで発生するため、nibをロードしてセルインスタンスに適用する場所ではありません。

それで、MyCustomCell.mIBOutletsのをリリースしdeallocますか、それともMyTableView.mで何かをする必要がありますか?

また、MyCustomCell.mには、自分をnilに- (void)viewDidUnload {}設定できる場所がありませんが、MyTableView.mにはあります。IBOutlets

4

1 に答える 1

2

セルのIBOutletsプロパティはありますか?その場合は、MyCustomCellのdeallocメソッドでそれらを解放します。

tableViewsのガイドラインに従っており、tableview:cellForRowAtIndexでdequeueReusableCellWithIdentifier:を呼び出していることを確認してください。tableViewは、カスタムセルが不要になると、カスタムセルを解放します。セルへの他の参照がないと仮定すると(そうすべきではありません)、tableViewによってデキューされたセルに対してdeallocが呼び出されます。

于 2010-04-28T20:24:36.657 に答える