测试dequeueReusableCellWithIdentifier:forIndexPath

时间:2015-12-14 19:53:22

标签: ios swift uitableview

我在这里阅读了很多关于在不同问题中重复使用表格单元格的内容。

  1. 我实现了UITableview的子类(在Swift中)
  2. 在我的ViewController的ViewDidLoad()中注册了这个类(我没有使用storyboard)
  3. 并在tableView中使用dequeueReusableCellWithIdentifier:forIndexpath 的cellForRowAtIndexPath
  4. 据我所知,这应该重用细胞。 但是,如果单元格实际重用,有没有办法测试? 例如,在仪器中或通过在调试器中打印。

    感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

有很多方法可以做到。

首先,您可以写一些内容来登录initWithStyle:reuseIdentifier:。您将看到与屏幕上同时存在单元格一样多的日志条目。

第二:你可以在cellForRowAtIndexPath中以某种方式标记你的细胞。例如,单元格的标签默认设置为0。因此,当您从dequeueReusableCell...获取单元格时,如果它有一个等于0的标记,则将其设置为其他内容。否则,您刚收到一个重复使用的单元格。您还可以将第一个单元格的标记设置为1,然后将第二个单元格的标记设置为2,这样您还可以找到您使用的单元格数量。到目前为止,您只需要跟踪最大的标记。

您还可以添加一些自定义属性,并以与标记相同的方式使用它。

另一种选择是在调试器中打印单元格。正如@RichTolley在上面的评论中所建议的那样。但在我看来,它不是很方便(手动比较指向每个单元格的指针)。

答案 1 :(得分:1)

最简单的方法是在单元格中为cell.tag = indexPath.row+1设置一个标记(添加一个阻止来自设置的默认值0)并设置断点条件如图所示。如果tag不同于0断点停止并在控制台上打印标签。 How to set condition breakepoint