当我滑动一行并使用iOS模拟器输入editActionsForRowAtIndexPath
时,indexPath.row会不时地等于-1。这是一种非常罕见的情况,因此除了在代码中等待println(indexPath.row)
之外,它很难调试,这就是我知道它返回-1的方式。还有其他人有过这方面的经验吗?
答案 0 :(得分:1)
NSIndexPath
行的整数是带符号的NSInteger
,而不是NSUInteger
。这个的原因可能是因为无符号类型可能容易下溢。这意味着-1的索引路径行将返回约4294967294的行值。
此answer声称UITableView
的早期版本使用NSInteger
作为疏忽,并且Apple将所有内容(部分,行数等)更改为{{1}将签名和未签名的类型和谐地协同工作将是一项艰巨的任务。
如果您的代码中有从NSUInteger
中减去1的情况,则当索引为0时,将发生此行为。