【问题标题】:iPhone: Do I have to (and how) release the subviews of a custom table view cell?iPhone:我是否必须(以及如何)发布自定义表格视图单元格的子视图?
【发布时间】:2011-01-18 01:37:19
【问题描述】:

我有自定义 TableViewCell-s,我将几个 UIImageView-s 和 UILabel-s 分配给单元格的内容视图,如下所示:

[cell.contentView addSubview:iconFileView];
[iconFileView release];
[cell.contentView addSubview:areaLabel];
[areaLabel release];
[cell.contentView addSubview:placeLabel];
[placeLabel release];

据我了解,单元格本身由 TableView 保留,并将与它一起释放。但是,我不明白我是否必须从内容视图中删除单元格的内容视图的子视图才能释放它们?

如果答案是肯定的:我该怎么做?找到所有可见单元格并从每个单元格中删除它们的子视图就足够了吗?

在 Cocoa 的内存管理指南中都找不到这个问题的确切答案。

谢谢!

【问题讨论】:

    标签: iphone memory-management uitableview


    【解决方案1】:

    当单元格释放 contentView 时,contentView 将负责释放其子视图。基本上,当单元格的保留计数变为零时,它会向 contentView 发送一条释放消息。如果contentView的retain count为零,那么它会向它的所有子视图发送release消息,包括iconFileView等。只要你没有向contentView或iconFileView等发送任何额外的retain消息,你应该没问题。

    如果您想感觉非常好,请在 Leaks in Instruments 下运行您的程序。确保你做任何需要做的事情来释放 UITableViewCells。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 1970-01-01
      相关资源
      最近更新 更多