Wie kann ich den Schlüsselwert aus dem Wörterbuch in Swift abrufen?

83

Ich habe ein Swift-Wörterbuch. Ich möchte den Wert meines Schlüssels erhalten. Objekt für Schlüsselmethode funktioniert bei mir nicht. Wie erhalten Sie den Wert für den Schlüssel eines Wörterbuchs?

Das ist mein Wörterbuch:

var companies = ["AAPL" : "Apple Inc", "GOOG" : "Google Inc", "AMZN" : "Amazon.com, Inc", "FB" : "Facebook Inc"]

for name in companies.keys { 
    print(companies.objectForKey("AAPL"))
}
DuyguK
quelle
5
Das ist alles in der Dokumentation behandelt: developer.apple.com/library/prerelease/mac/documentation/Swift/…
Martin R
"Sie können auch die tiefgestellte Syntax verwenden, um einen Wert aus dem Wörterbuch für einen bestimmten Schlüssel abzurufen ... if let airportName = airports["DUB"] { … }"
Martin R

Antworten:

166

Verwenden Sie Subskription, um auf den Wert für einen Wörterbuchschlüssel zuzugreifen. Dies gibt eine Option zurück:

let apple: String? = companies["AAPL"]

oder

if let apple = companies["AAPL"] {
    // ...
}

Sie können auch alle Schlüssel und Werte auflisten:

var companies = ["AAPL" : "Apple Inc", "GOOG" : "Google Inc", "AMZN" : "Amazon.com, Inc", "FB" : "Facebook Inc"]

for (key, value) in companies {
    print("\(key) -> \(value)")
}

Oder zählen Sie alle Werte auf:

for value in Array(companies.values) {
    print("\(value)")
}
Prine
quelle
24

Aus Apple Docs

Sie können die tiefgestellte Syntax verwenden, um einen Wert für einen bestimmten Schlüssel aus dem Wörterbuch abzurufen. Da es möglich ist, einen Schlüssel anzufordern, für den kein Wert vorhanden ist, gibt der Index eines Wörterbuchs einen optionalen Wert des Wertetyps des Wörterbuchs zurück. Wenn das Wörterbuch einen Wert für den angeforderten Schlüssel enthält, gibt der Index einen optionalen Wert zurück, der den vorhandenen Wert für diesen Schlüssel enthält. Andernfalls gibt der Index null zurück:

https://developer.apple.com/documentation/swift/dictionary

if let airportName = airports["DUB"] {
    print("The name of the airport is \(airportName).")
} else {
    print("That airport is not in the airports dictionary.")
}
// prints "The name of the airport is Dublin Airport."
Sebin Roy
quelle