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