Невозможно подписать значение типа '[[String: Any]]' с ошибкой индекса типа 'String' - PullRequest
0 голосов
/ 22 января 2020

Я получаю следующую ошибку:

Невозможно добавить значение типа '[[String: Any]]' с индексом типа 'String'

в этой строке кода:

let temp = Int (weatherMain["temp"] as? Double ?? 0)

Я новичок в Xcode, пожалуйста, помогите

Ответы [ 3 ]

1 голос
/ 22 января 2020

weatherMain - это массив словарей. Я не знаю, как вы храните данные, но для доступа к значению ["temp"] вам нужно сделать weatherMain[0]["temp"], где 0 - индекс.

1 голос
/ 22 января 2020

Невозможно добавить значение типа '[[String: Any]]' с индексом типа 'String'

[[String : Any]], равное Array из Dictionaries и Array доступен через Int индексов, а не String.

Итак, вам нужно сначала получить Dictionary из Array, используя индекс Int, а затем получить доступ к паре ключ-значение из этого Dictionary с использованием String.

let temp = Int (weatherMain["temp"] as? Double ?? 0)

В приведенном выше коде предполагается, что weatherMain имеет тип [[String: Any]], чтобы получить доступ к ключу "temp" из Dictionary, вам нужно сначала получить dictionary из array, то есть

let dict = weatherMain[0]
let temp = Int(dict["temp"] as? Double ?? 0)
1 голос
/ 22 января 2020

Вы применяете тип как [String: Any] Где вы должны произносить как [[String: Any]]

Что-то вроде:

let temp = Int (weatherMain[0]["temp"] as? Double ?? 0)

Вам необходимо передать индекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...