所以我一直在搜索,似乎大多数人认为以下列方式递增indexPath是正确的方法:
NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:oldIndexPath.row + 1 inSection:oldIndexPath.section];
我似乎无法看到有人通过这种方式解决我的问题:如果将tableView中的最后一个indexPath提供给此方法,会发生什么?如果您尝试初始化tableView" s"范围内的indexPath,它会崩溃吗?如果它不会在那里崩溃,那么任何涉及UITableView并使用indexPath的方法都会崩溃,如果你在它的"范围之外提供一个indexPath"?
我目前正在使用我自己的算法来防止这些问题,但是我想知道我是否可以废弃它并且只是使用这种方法?这有多安全?
答案 0 :(得分:5)
NSIndexPath
并未与表格视图相关联。它只是一个包装整数数组的对象。通常我们处理只包含两个整数的索引路径,但它实际上可以包含任何数字。因此,无论任何表视图的大小如何,您都可以使用任何所需的整数初始化索引路径。
当您将索引路径传递给表视图时,表视图通常会检查以确保路径中的每个索引都在范围内,并且如果其中任何索引都没有,则会崩溃。