removeObjectsAtIndexes for Swift arrays

前端 未结 14 1196
长情又很酷
长情又很酷 2020-11-30 12:34

What is a Swift array equivalent to NSMutableArray\'s -removeObjectsAtIndexes:? Removing each index one by one doesn\'t work, as remaining indexes

14条回答
  •  南方客
    南方客 (楼主)
    2020-11-30 13:09

    I ended up doing it this way:

    According to Apple's documentation on NSIndexSet, "index sets store indexes as sorted ranges". So we could enumerate over the given NSIndexSet backwards and remove the element from the array at each index one by one, like so:

    extension Array {
    
      mutating func removeAtIndexes(indexes: NSIndexSet) {
        for var i = indexes.lastIndex; i != NSNotFound; i = indexes.indexLessThanIndex(i) {
          self.removeAtIndex(i)
        }
      }
    
    }
    

提交回复
热议问题