Home > OS >  How to solve Fatal Error: Index out of range error in swift?
How to solve Fatal Error: Index out of range error in swift?

Time:01-20

In this piece of code, when the iteration position reach 13 out of an array with 20 elements, it crashes with the index out of range error.

let counterHeaders = headers.count
for value in 0..<(counterHeaders){
    if headers[value] == "" {
        headers.remove(at: value)
    }
}

Note: counterHeaders variable was created to check how many values was in headers array

CodePudding user response:

You just need to iterate your indices in reverse order when removing items in your collection.

for value in headers.indices.reversed() {
    if headers[value] == "" {
        headers.remove(at: value)
    }
}

Note also there is a mutating method that accepts a predicate called removeAll(where:):

headers.removeAll(where: \.isEmpty)
  •  Tags:  
  • Related