Swift: Nicht index ein Wert vom Typ 'Dictionary<String, NSObject>?'
EDIT: Nicht eine DOPPELTE:
Diese Lösung gibt 'Could not find an overload for 'subscript' that accepts the supplied arguments'
Fehler. Also, Nein, das ist NICHT doppelt.
Hier ist die Deklaration der Funktion.
func auth(user: String, pass: String, completion: (returned: Bool, error: Bool, response: Dictionary<String, NSObject>?) -> ()){
response
werden kann, nil
}
Ich jetzt versuche, auf übergebenen Wert wieder in eine andere Datei und erhalte eine Fehlermeldung:
if let labelString = response["error_description"] as! String?{
self.labelPrompt.text = labelString
}
Fehler: Nicht Tiefgestellt ein Wert vom Typ 'Wörterbuch?' mit einem index vom Typ 'String'
- möglich, Duplikat der Nicht index ein Wert vom Typ '[NSObject : AnyObject]?' mit einem index vom Typ 'String'
- Es ist ein Duplikat. Siehe Eric D die richtige Antwort unten. (gestimmt)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein Duplikat der verlinkten Frage: was Sie brauchen, ist zum Auspacken des Wörterbuchs, bevor Sie es mit einem Tiefgestellt.
Es gibt viele Möglichkeiten, ("wenn Sie", etc) und die verlinkten Antwort gibt die Lösung mit "optional mit Bindung" durch hinzufügen einer
?
zwischen der variable halten Sie das Wörterbuch und die Tiefgestellt.Beispiel in einen Spielplatz:
Anderen Weg, Auspacken das Wörterbuch:
if let responseOK = response, let test = responseOK["test"] as? String { println(test) // "yep" }
haben.