Secciones alfabéticas en la vista de tabla en tabla rápida

Tengo una lista de nombres ordenados alfabéticamente, y ahora quiero mostrar estos nombres en una vista de tabla. Estoy luchando con agrupar estos nombres para cada letra.

Mi código se ve así:

let sections:Array<AnyObject> = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
var usernames = [String]()

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{

    let cellID = "cell"

    let cell: UITableViewCell = self.tv.dequeueReusableCellWithIdentifier(cellID) as UITableViewCell

    cell.textLabel?.text = usernames[indexPath.row]

return cell
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{

    return usernames.count
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int{

    return 26
}


func sectionIndexTitlesForTableView(tableView: UITableView) -> [AnyObject]!{

    return self.sections
}

func tableView(tableView: UITableView,
    sectionForSectionIndexTitle title: String,
    atIndex index: Int) -> Int{

        return index
}

func tableView(tableView: UITableView,
    titleForHeaderInSection section: Int) -> String?{

        return self.sections[section] as? String
}

y todo funciona bastante bien, excepto la agrupación que hace que mi vista de tabla termine así:

Por lo tanto, sé que debería poder usar la función filtrada en una matriz, pero no entendí cómo implementarla.

Cualquier sugerencia sobre cómo proceder será apreciada.

Respuestas a la pregunta(6)

Su respuesta a la pregunta