Swift等价的removeObjectsInRange:

时间:2014-09-18 13:20:38

标签: objective-c swift

跟踪Swift相当于:

时遇到一些麻烦
//timeArray and locationArray are NSMutableArrays
NSRange removalRange = NSMakeRange(0, i);

[timeArray removeObjectsInRange:removalRange];
[locationArray removeObjectsInRange:removalRange];

我看到Swift确实在API中有一个电话:typealias NSRange = _NSRange但我还没有超过那个部分。有什么帮助吗?

2 个答案:

答案 0 :(得分:27)

除了安东尼奥的回答之外,您还可以使用范围运算符:

var array = [0, 1, 2, 3, 4, 5]
array.removeRange(1..<3)
// array is now [0, 3, 4, 5]
  • 半封闭范围运算符(1..<3)包括1,最多但不包括3(所以1-2)。
  • 全范围运算符(1...3)包括3(所以1-3)。

答案 1 :(得分:4)

使用swift数组的removeRange方法,这需要Range结构的一个实例来定义范围:

var array = [1, 2, 3, 4]

let range = Range(start: 0, end: 1)
array.removeRange(range)

此代码从索引0(包括)到索引1(不包括)

删除所有数组元素

Swift 3

正如@bitsand所建议的那样,上面的代码已被弃用。它可以替换为:

let range = 0..<1
array.removeSubrange(range)

或更简洁:

array.removeSubrange(0..<1)