2014-12-16 17 views

Antwort

16

Wenn Sie einen Swift haben Dictionary und Sie wissen, Sie haben genau 1 Schlüssel/Wert-Paar Sie dies tun können:

var dict = ["aaa":"bbb"] 
let v = dict.values.first! 

Wenn Sie mehr als ein Schlüssel/Wert-Paar haben, gibt es keinen "ersten" Wert, da Wörterbücher nicht geordnet sind. Wenn Sie keine Schlüssel/Wert-Paare haben, stürzt diese ab.

Wenn Sie eine NSDictionary haben, können Sie allValues.first! verwenden, aber Sie werden das Ergebnis werfen müssen, weil der Wert wird eine AnyObject sein:

var dict:NSDictionary = ["aaa":"bbb"] 
let v = dict.allValues.first! as! String 

oder:

let v = dict.allValues[0] as! String 
+0

es funktioniert, danke! – PatrickFeng

5

Cast einen Swift Wörterbuch, wenn es nicht ein ohnehin schon ist. Dann nutzen Sie die values Eigenschaft, zu einem Array geworfen und bekommt Index 0.

let v = Array(myDictionary.values)[0] 
+1

Seien Sie gewarnt, Wenn Sie jedoch mehr als ein Schlüssel/Wert-Paar haben, gibt es keinen "ersten Wert" - ein Wörterbuch ist ungeordnet. Dieser Trick funktioniert nur, weil Sie sicher wissen, dass der "count" 1 ist. – matt

+5

'lassen Sie v = dict.values.first!' – vacawama

+0

@vacawama Gehen Sie voran und geben Sie das als Antwort! Ausgezeichnet. – matt