У меня есть массив, который я хочу преобразовать в словарь, и я объявил функцию, чтобы сделать это, но я получаю эту ошибку каждый раз, когда я компилирую "Не могу подписать значение типа '[String: [String]]' с помощью аргумент типа 'String.SubSequence' (он же 'Substring') "
мой код
let animals = ["Bear", "Black Swan", "Buffalo", "Camel", "Cockatoo", "Dog", "Donkey", "Emu", "Giraffe", "Greater Rhea", "Hippopotamus", "Horse", "Koala", "Lion", "Llama", "Manatus", "Meerkat", "Panda", "Peacock", "Pig", "Platypus", "Polar Bear", "Rhinoceros", "Seagull", "Tasmania Devil", "Whale", "Whale Shark", "Wombat"]
var animalsDict = [String: [String]]()
var animalSectionTitles = [String]()
func createAnimalDict() {
for animal in animals {
let secondLetterIndex = animal.index(animal.startIndex, offsetBy: 1)
let animalKey = animal[..<secondLetterIndex]
if var animalValues = animalsDict[animalKey] {
animalValues.append(animal)
animalsDict[animalKey] = animalValues
}else {
animalsDict[animalKey] = [animal]
}
}
animalSectionTitles = [String](animalsDict.keys)
animalSectionTitles = animalSectionTitles.sorted(by: { $0 < $1 })
}
Я ожидаю получить этот словарь после преобразования, чтобы заполнить представление таблицы этим словарем, который ключ относится к заголовку раздела, а его значения относятся к заголовкам строк
let animals: [String: [String]] = ["B" : ["Bear", "Black Swan", "Buffalo"],
"C" : ["Camel", "Cockatoo"],
"D" : ["Dog", "Donkey"],
"E" : ["Emu"],
"G" : ["Giraffe", "Greater Rhea"],
"H" : ["Hippopotamus", "Horse"],
"K" : ["Koala"],
"L" : ["Lion", "Llama"],
"M" : ["Manatus", "Meerkat"],
"P" : ["Panda", "Peacock", "Pig", "Platypus", "Polar Bear"],
"R" : ["Rhinoceros"],
"S" : ["Seagull"],
"T" : ["Tasmania Devil"],
"W" : ["Whale", "Whale Shark", "Wombat"]]