虽然循环未在Swift中正确检查

时间:2016-01-03 22:24:17

标签: ios swift while-loop

目前我有一个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)        
    }
}

1 个答案:

答案 0 :(得分:2)

您正在通过从中删除项目来改变isExpanded数组 - 这意味着下一个项目的索引将减少1,但无论如何都会增加t。 NSMutableIndexSet可能是用于isExpanded而不是数组的更好的数据结构。

NSMutableIndexSet存储一组整数索引 - 在这种情况下,它将是您的item值。然后,您可以使用set的contains(item)方法快速获得有关特定索引是否在集合中的答案。