En este fragmento de código, cuando la posición de la iteración llega a 13 de una matriz con 20 elementos, falla con el error de índice fuera de rango.
let counterHeaders = headers.count for value in 0..<(counterHeaders){ if headers[value] == "" { headers.remove(at: value) } }Nota: la variable counterHeaders se creó para verificar cuántos valores había en la matriz de encabezados
Solo necesita iterar sus indices en orden inverso al eliminar elementos de su colección.
for value in headers.indices.reversed() { if headers[value] == "" { headers.remove(at: value) } } Tenga en cuenta que también hay un método de mutación que acepta un predicado llamado removeAll(where:) :
headers.removeAll(where: \.isEmpty)