当苹果公司为第一款iPhone开发UITableView ,它们在性能上遇到了问题。 然后一位聪明的工程师发现,原因是物体的分配带来了一个代价,所以他想出了一种重用细胞的方法。 “对象分配具有性能成本,特别是如果分配必须在短时间内重复发生,例如用户滚动表视图时,如果重复使用单元而不是分配新单元,则可大大提高表视图的性能。 来源:iOS参考图书馆 重用您使用的单元格: UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 现在,我想知道的是,这里究竟发生了什么? 如果有一个具有该标识符的单元格并返回该单元格,它会在TableView中查看吗? 那么啊是啊,但如果它发送一个引用而不是分配,我有一个表视图与我们说4个单元格具有相同的标识符都是可见的。 它怎样才能把自己分成四个实例而不分配? 我想知道这一点,因为我正在build立一个日历types的组件,所有的单元格具有相同的结构只有文本内的变化。 所以如果我能以某种方式重新使用我的电池,而不是分配,我想我可能会获得更好的性能。 我自己的理论是它分配了四个单元格(因为它也有)。 当一个单元格从屏幕上消失时,它将被放在TableView的重用队列中。 当需要一个新的单元时,它会查询具有相同标识符的单元是否可用,它会在该单元上调用prepareForReuse方法,并将其从队列中移除。