Сборка полезной нагрузки данных, переданной GRMustache.swift для отображения шаблонов усов, я в сценарии, где мне нужно добавить данные к массиву, ранее определенному в словарь.
Моя структура данных начинается как:
var data: [String: Any] = [
"key1": "example value 1",
"key2": "example value 2",
"items": [
// I need to append here later
]
]
Пара ключей items
- это коллекция, которую мне нужно добавить позже в цикле.
Чтобы добавить к массиву data["items"]
, я пытаюсь что-то вроде:
for index in 1...3 {
let item: [String: Any] = [
"key": "new value"
]
data["items"].append(item)
}
Эти ошибки, поскольку значение типа Any?
не имеет члена append
, а двоичный оператор +=
не может применяться к операндам типа Any?
и [String : Any]
.
Это имеет смысл, поскольку мне нужно указать значение для добавления; однако я не могу мутировать массив.
Приведение в массив, независимо от того, приводит ли это к ошибке:
(data["items"] as! Array).append(item)
'Любые? не конвертируется в 'Array < _ > '; вы хотели использовать "как!" заставить downcast?
Нельзя использовать мутирующий элемент в неизменяемом значении типа 'Array < _ > '
Похоже, что мое приведение неверно; или, возможно, я собираюсь сделать это не так.
Любая рекомендация о том, как заполнить data["items"]
итеративно с течением времени?