Swift: crear una matriz de valores de dictionary

Soy muy nuevo en Swift. Tengo un controller de vista de tabla en el que he declarado lo siguiente:

var parts = [String:[String]]() //Key: String, Value: Array of Strings var partsSectionTitles = [String]() 

En mi function viewDidLoad, tengo:

 parts = [ "Part 1" : ["1", "2", "3"], "Part 2" : ["1", "2"], "Part 3" : ["1"] ] //Create an array of the keys in the parts dictionary partsSectionTitles = [String](parts.keys) 

En mi function cellForRowAtIndexPath, tengo:

 let cell = tableView.dequeueReusableCellWithIdentifier("TableCell", forIndexPath: indexPath) as UITableViewCell var sectionTitle: String = partsSectionTitles[indexPath.section] var secTitles = parts.values.array[sectionTitle] cell.textLabel.text = secTitles[indexPath.row] 

Estoy tratando de crear una matriz, secTitles, que consiste en los valores del dictionary de partes que corresponden a las keys, sectionTitle. Sin embargo, recibí este post de error:

'String' no es convertible a 'Int'

Pude hacerlo en Objective-C:

 NSString *sectionTitle = [partsSectionTitles objectAtIndex:indexPath.section]; NSArray *secTitles = [parts objectForKey:sectionTitle]; 

Además, me gustaría saber si seré capaz de agregar / eliminar los valores en las matrices y dictionarys más adelante. En otras palabras, ¿son mutables? He leído algunos artículos que dicen que las matrices Swift y los dictionarys no son realmente mutables. Solo quería saber si alguien podía confirmar eso. Gracias de antemano por sus respuestas.

Simplemente no necesitas los values.array . values.array :

 var chapterTitles = partsOfNovel[sectionTitle]! 

Los arreglos dentro de los dictionarys pueden mutarse siempre que el dictionary en sí sea mutable, pero deberá asignar mediante un operador de desenvolver:

 if partsOfNovel[sectionTitle] != nil { partsOfNovel[sectionTitle]!.append("foo") }