iOS tableView 复用自定义的 cell 导致的数据错乱

两种解决方案:

1、弃用 cell 的复用机制
2、复用时清空 cell 的数据

用第一种的话在数据较多时会降低效率,而且没有从根本上解决问题。

第二种解决可以通过在自定义的 cell 中重写 prepareForReuse 方法实现:

- (void)prepareForReuse NS_REQUIRES_SUPER;                                                      
// if the cell is reusable (has a reuse identifier), 
//this is called just before the cell is returned from the table view method dequeueReusableCellWithIdentifier:. 
//If you override, you MUST call super.

示例如下,不要忘记加 super:

- (void)prepareForReuse
{
    [super prepareForReuse];
    
    self.sellPriceLabel.text=@"";
    self.sellNumLabel.text=@"";
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容