¿No se puede formar Rango con fin <inicio Comprobar rango antes de hacer el ciclo?

Me encuentro con un cambio en el código rápido que no entiendo del todo.

var arr = []
for var i = 1; i <= arr.count; i += 1
{
    print("i want to see the i \(i)")
}

Tengo un programa que obtiene una matriz de resultados que también puede estar vacía. Esto no es un problema con el bucle anterior. Ahora Apple quiere que cambie el código a lo siguiente. Pero esto se bloqueará si la matriz está vacía.

var arr = []
for i in 1...arr.count
{
   print("i want to see the i \(i)")
}

¿Realmente tengo que verificar el rango primero antes de hacer un ciclo como?

var arr = []
if (arr.count >= 1){
    for i in 1...arr.count
    {
        print("I want to see the i \(i)")
    }
}

¿Hay una solución más inteligente?

Respuestas a la pregunta(3)

Su respuesta a la pregunta