¿Cómo accedo a un índice aleatorio dentro de una matriz?

Estoy intentando acceder a una matriz utilizando índices aleatorios usando arc4random para generar el índice aleatorio. Lo siento si mi "uso técnico de los términos" es incorrecto, ya que soy bastante nuevo en la escena de desarrollo.

 var backLeft = ["Clear","Drop","Smash"]; var i = (arc4random()%(3)) var shot = backLeft[i] 

Esto me da un error en la tercera línea,

 Could not find an overload for 'subscript' that accepts the supplied arguments. 

Pero si lo uso,

 var i = 2 var shot = backLeft[i] 

Entonces no me da ningún problema. Viniendo de un background de php, parece que no tengo ni idea de qué va mal aquí.

¡Gracias! 🙂 PD: Estoy probando esto en XCODE 6 dentro del Swift Playground

Eso se debe a la aplicación de la security tipo Swift.

arc4random() devuelve un UInt32 , y el operador del subíndice toma un Int .

Debes asegurarte de que i del tipo Int antes de pasarlo al operador del subíndice.

Puede hacerlo inicializando un Int desde i :

 var shot = backLeft[Int(i)] 

O bien, puede hacer lo mismo con el valor aleatorio antes de asignarlo a i y luego acceder normalmente a:

 var i = Int(arc4random()%(3)) var shot = backLeft[i]