当前位置: 首页 > 面试题库 >

Swift数组的removeObjectsAtIndexes

濮嘉茂
2023-03-14
问题内容

一个与等效的Swift数组NSMutableArray-removeObjectsAtIndexes:什么?逐个删除每个索引不起作用,因为删除一个索引后剩余的索引会移动。什么是实现此功能的有效方法


问题答案:

这是我当前使用的解决方案:

extension Array {
    mutating func removeObjectAtIndexes(indexes: [Int]) {
        var indexSet = NSMutableIndexSet()

        for index in indexes {
            indexSet.addIndex(index)
        }

        indexSet.enumerateIndexesWithOptions(.Reverse) {
            self.removeAtIndex($0.0)
            return
        }
    }

    mutating func removeObjectAtIndexes(indexes: Int...) {
        removeObjectAtIndexes(indexes)
    }
}


 类似资料:
  • Swift 4数组用于存储相同类型的有序值列表。 Swift 4进行了严格的检查,不允许在数组中输入错误的类型。 如果将已创建的数组分配给变量,则它总是可变的,这意味着可以通过添加,删除或更改其项来更改它; 但是如果将数组赋值给常量,那么该数组是不可变的,并且其大小和内容不能更改。 创建数组 可以使用以下初始化语法创建某个类型的空数组 - 以下是创建给定大小的数组并使用值初始化它的语法 - 可以使

  • Swift 数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。 Swift 数组会强制检测元素的类型,如果类型不同则会报错,Swift 数组应该遵循像Array<Element>这样的形式,其中Element是这个数组中唯一允许存在的数据类型。 如果创建一个数组,并赋值给一个变量,则创建的集合就是可以修改的。这意味着在创建数组后,可以通过添加、删除、修改的方式改变数

  • 问题内容: 我有一个功能: 排队 resultArray.append(tempDict) 我有一个错误: 调用中缺少参数“ ccomments”的参数 为什么?请帮助.... 问题答案: 在我看来,就像对待元组有点像可变参数,并试图扩展元组以匹配其自身的参数。它抱怨您的第二个参数,因为它只期待一个。我没有在任何地方看到这种行为的记录,因此我想说这是Swift中的错误。 使用追加运算符似乎没有这个

  • 问题内容: 我正在尝试处理Swift中的一个应用,并且遇到使用数组的以下错误: 当应用为索引0的数组分配值时,将显示以下内容: 有什么想法吗?(我正在使用xcode 6 Beta 4) 问题答案: 您的数组最初是空的。

  • 问题内容: 我一直在研究具有不同类型的泛型类的数组。用一些示例代码来解释我的问题是最简单的: 现在,如果我尝试创建像这样的容器数组: 我得到错误: 协议“ MyProtocol”只能用作通用约束,因为它具有“自身”或相关的类型要求。 要解决这个问题,我可以使用: 但是现在在枚举时出现了另一个“问题” : 如您在上面的代码中看到的那样,在两种情况下,确定相同方法的类型后都会调用它。我的问题是: 是否

  • 问题内容: 我对Swift中的2D数组感到非常困惑。让我逐步描述。如果我错了,请您纠正我。 首先; 空数组的声明: 其次,填充数组。(例如,i,j是for循环变量) 最后,在数组中编辑元素 问题答案: 定义可变数组 要么: 或者,如果您需要一个预定义大小的数组(如@ 0x7fffffff在评论中所述): 在位置更改元素 要么 更改子数组 要么 要么 如果在进行这些更改之前,您有3x2的数组,数组中