2017-02-03 5 views
-2

Wenn ich zu swift 3 konvertiert habe, hat sein Sprichwort irgendjemand keine tiefgestellten Mitglieder.Typ 'Any' hat keine tiefgestellten Mitglieder

let dataDictionary = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) 
let accessToken = dataDictionary["access_token"] as! AnyObject? 

Ihave versucht, viele Möglichkeiten, aber nicht funktionierte.

+1

Ist nichts davon funktioniert für Sie lassen http : //stackoverflow.com/search?q=% 5Bswift3% 5DType +% 27Any% 27 + hat + no + subscript + members? oder dieses http://stackoverflow.com/search?q=Type+%27Any%27+has+no+subscripts+members? –

+0

nop, ich habe viele probiert – user2702179

+0

was ist 'dataDictionary' – Aaron

Antwort

0

Der Rückgabetyp ist Any, der keine Subskribierung erlaubt. Sie müssen die explizite Typkonvertierung als Index verwenden. Wenn Sie versuchen, die Daten zu [String: Any] werfen könnten Sie Folgendes tun:

if let dataDictionary = dataDictionary as? [String: Any] { 
    // dataDictionary["access_token"] as AnyObject 
} 
0

JSONSerialization.jsonObject wirft einen Fehler, so fangen sie in einem do catch Block

do { 
     let dataDictionary = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String: Any] 
     let accessToken = dataDictionary["access_token"] as! AnyObject 
    } catch let error as NSError { 
     print(error) 
    } 
Verwandte Themen