Я очень новичок в Swift. У меня есть контроллер представления таблицы, в которой я заявил следующее:Swift: Создать массив значений словаря
var parts = [String:[String]]() //Key: String, Value: Array of Strings
var partsSectionTitles = [String]()
В моей функции viewDidLoad, у меня есть:
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)
В моей функции cellForRowAtIndexPath, у меня есть:
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]
Я пытаюсь создать массив, secTitles, состоящий из значений из словаря деталей, соответствующих клавишам, sectionTitle. Тем не менее, я получил сообщение об ошибке:
«Строка» является не трансформируемая в «Int»
я был в состоянии сделать это в Objective-C:
NSString *sectionTitle = [partsSectionTitles objectAtIndex:indexPath.section];
NSArray *secTitles = [parts objectForKey:sectionTitle];
Кроме того, я хотел бы узнайте, смогу ли я добавить/удалить значения в массивах и словарях позже. Другими словами, они изменяемы? Я прочитал несколько статей, в которых говорится, что массивы Swift и словари на самом деле не изменяемы. Я просто хотел знать, сможет ли кто-нибудь подтвердить это. Заранее благодарю вас за ваши ответы.
Результат не обязательно - вы можете использовать '!' Для принудительного разворота, если вы уверены, что ключ действителен, или используйте необязательную привязку или оператор коалесценции nil, чтобы развернуть его, если вы этого не сделали. (Ответ теперь показывает разворот силы.) –