UITableView单元重用导致NSTimer问题

Rod*_*Rod 1 cocoa-touch objective-c uitableview ios4

我有一个UITableView与我建立的自定义单元格.单元格有几个标签,一个开始按钮和一个停止按钮,以及一个从按钮触发和停止的NSTimer.

标签显示来自sqllite的数据(通过核心数据),并且计时器针对每个单独的单元单独运行.

这一切都正常,直到我有更多的单元格和细胞重用被触发.此时,每个单元格在其标签中显示正确的数据,但是如果我为第一个单元格启动计时器,那么当它从屏幕滚出时,下一个单元格显示(并随后重新使用前一个单元格)将使其计时器变为好.

我无法弄清楚如何保证每个单元格都有自己的定时器线程和单元重用.

任何帮助,将不胜感激.

Yur*_*ras 5

在您的情况下,单元格具有内部状态(计时器).当细胞被重用时,它的状态就会丢失(或者甚至值得重用的细胞将继承先前的状态).你有两个选择

  • 不要重复使用细胞
  • 使细胞无状态(例如将您的计时器移动到控制器)