Вы написали это как расширение словаря, если я правильно вас понимаю, и это означает, что self
является обобщенным c и определено как Dictionary<Key, Value>
, а не для вас, указав тип c, как в вашем for
l oop Вы перебираете массив [Value].
Поэтому вам нужно набрать Value
, прежде чем обращаться к нему как к словарю
if let dictionary = dictNEO as? [String: String] {
print(dictNEO["approachDate"])
}
, но так как это не имеет особого смысла чтобы иметь расширение Dictionary
, где вы получаете доступ к указанному ключу c, было бы лучше написать его как функцию. Поскольку словарь теперь хорошо определен, проблем с последним print
func printValuesForSubKey(_ key: String, _ dict: [String: [String: String]]) {
for (dictNEO) in dict.values {
print(dictNEO)
print(type(of: dictNEO))
print(dictNEO[key])
}
}
нет. Обратите внимание, у меня нет объяснения, почему type(of:)
распознает его как [String: String]