/ / Jak rozwiązać błąd „niejednoznaczne odniesienie do elementu„ subscript ”” - swift, dictionary, swift3

Jak rozwiązać błąd "niejednoznaczne odwołanie do elementu 'subscript'" - swift, dictionary, swift3

Otrzymuję błąd:

Niejednoznaczne odniesienie do „subscript” członka

Na następującym kodzie:

let jsonObject = try JSONSerialization.jsonObject(with: data, options: [])
guard   let jsonDictionary = jsonObject as? [NSObject: AnyObject],
let photos = jsonDictionary["photos"] as? [String: AnyObject], // this line is giving the error
let photosArray = photos["photo"] as [[String: AnyObject]] else {
print("Error")
}

Poprzednie posty sugerowały zmianę typu z [String: AnyObject] do [AnyObjectHashable: Any]. To nie naprawiło błędu. Czy ktoś może wyjaśnić, dlaczego ten błąd występuje i jak można go rozwiązać?

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz to zastąpić, aby utworzyć słownik w swift 3, którego możesz użyć jak [String: Any] zamiast [String: AnyObject]

let jsonObject = try JSONSerialization.jsonObject(with: data, options: [])
guard   let jsonDictionary = jsonObject as? [String: Any],
let photos = jsonDictionary["photos"] as? [String: AnyObject], // this line is giving the error
let photosArray = photos["photo"] as? [[String: Any]] else {
print("Error")
}
print(jsonDictionary)