Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 测试dequeueReusableCellWithIdentifier:forIndexPath_Ios_Swift_Uitableview - Fatal编程技术网

Ios 测试dequeueReusableCellWithIdentifier:forIndexPath

Ios 测试dequeueReusableCellWithIdentifier:forIndexPath,ios,swift,uitableview,Ios,Swift,Uitableview,我在这里读了很多关于重用表格单元格的问题 我实现了UITableview的一个子类(在Swift中) 在我的ViewController的ViewDidLoad()中注册了这个类(我没有使用故事板) 并在tableView的 cellForRowAtIndexPath 据我所知,这应该重复使用电池。 但是,有没有办法测试电池是否确实被重复使用? 例如,在仪器中或通过在调试器中打印 谢谢你的帮助 有很多方法可以做到这一点 首先,您可以编写一些东西来登录initWithStyle:reuseIden

我在这里读了很多关于重用表格单元格的问题

  • 我实现了UITableview的一个子类(在Swift中)
  • 在我的ViewController的ViewDidLoad()中注册了这个类(我没有使用故事板)
  • 并在tableView的 cellForRowAtIndexPath
  • 据我所知,这应该重复使用电池。 但是,有没有办法测试电池是否确实被重复使用? 例如,在仪器中或通过在调试器中打印


    谢谢你的帮助

    有很多方法可以做到这一点

    首先,您可以编写一些东西来登录
    initWithStyle:reuseIdentifier:
    。您将看到与屏幕上同时显示的单元格一样多的日志条目

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

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


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

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

    如果您在调试器中打印单元格,它将提供单元格对象的地址,这将告诉您是否正在处理相同的对象。我在自定义单元格(在调试器中打印)的初始化中记录了该对象。我的屏幕上有15个单元格和16个日志。数据源包含大约30个单元格。那么重用应该有效吗?!谢谢大家!@Netzer,是的,似乎是这样:)如果滚动时日志中没有新记录,它就会工作。很高兴我能帮助你:请考虑接受/接受答案。(祝你有愉快的一天)