0

カスタムセルを使用していて、loadNibNamed:. これによりメモリリークが発生しているようで、解決方法がわかりません。トップレベルのオブジェクトをnil後で設定すると、まだリークが発生します。

topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"customCell" owner:self options:nil];

それから私はこれをします

for (id currentObject in topLevelObjects){
        if ([currentObject isKindOfClass:[UITableViewCell class]]){
            cell =  (CustomCell *) currentObject;
            break;
        }
    }

次に、セルのプロパティを変更します。

カスタム セルにはプロパティへの強い参照があります。これは循環参照ではないため、これが問題かどうかはわかりません。ARC を使用しているときにこの放棄されたメモリを停止する正しい方法は何ですか?

4

3 に答える 3

1

マットの答えは的を射ています。コードは次のようになります。セルがロードされ、本来あるべきようにデキューされるようになったため、メモリの問題をすぐに修正しました。

まず、ニブを登録します

[self.tableView registerNib:[UINib nibWithNibName:@"customCell"
                                           bundle:nil] 
                           forCellReuseIdentifier:@"customCellID"];

第二に...

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"customCellID"];

nib には 1 つの tableviewcell しか必要なく、準備完了です!

于 2013-12-13T00:30:11.360 に答える