Obtenga un range de una cadena

Quiero verificar si una cadena contiene solo numbers. Encontré esta respuesta escrita en Objective-C.

NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]]; if(range.location == NSNotFound) { // then it is numeric only } 

Traté de convertirlo a Swift.

 let range: NSRange = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet()) 

El primer error que encontré es cuando NSRange el tipo NSRange .

No se puede convertir el tipo de expresión 'Rango?' para escribir 'NSRange'

Entonces quité el NSRange y el error desapareció. Luego en la statement if,

 let range = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet()) if range.location == NSNotFound { } 

Encontré el otro error.

'¿Distancia?' no tiene un miembro llamado 'location'

NSString count que el username de username la variable es de tipo String no NSString . Entonces supongo que Swift usa su nuevo tipo de Range lugar de NSRange .

El problema no tengo idea de cómo usar este nuevo tipo para lograr esto. Tampoco encontré ninguna documentation para eso.

¿Alguien puede ayudarme a convertir este código a Swift?

Gracias.

Este es un ejemplo de cómo puede usarlo:

 if let range = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet()) { println("start index: \(range.startIndex), end index: \(range.endIndex)") } else { println("no data") }