目前我有一个while语句循环遍历下面填充级别较低的所有单元格,并且应该删除所述单元格。目前,下面的声明经历了其中约3个然后停止,即使其他单元符合条件。
if isExpanded[indexPath.item] //if already expanded remove
{
var t = 1
while (comment.paddingLevel != commentsData[indexPath.row + t].paddingLevel)
{
isExpanded.removeAtIndex(indexPath.row + t)
preRenderedText.removeAtIndex(indexPath.row + t)
commentsData.removeAtIndex(indexPath.row + t)
var path = NSIndexPath(forItem: indexPath.row + t, inSection: 0)
t++
delpaths.append(path)
}
}
答案 0 :(得分:2)
您正在通过从中删除项目来改变isExpanded
数组 - 这意味着下一个项目的索引将减少1,但无论如何都会增加t。 NSMutableIndexSet
可能是用于isExpanded
而不是数组的更好的数据结构。
NSMutableIndexSet
存储一组整数索引 - 在这种情况下,它将是您的item
值。然后,您可以使用set的contains(item)
方法快速获得有关特定索引是否在集合中的答案。