2014-12-16 15 views

risposta

16

Se si dispone di una Swift Dictionary e sai di avere esattamente 1 chiave/valore di coppia si può fare questo:

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

Se si dispone di più di una coppia chiave/valore, non esiste un "primo" valore poiché i dizionari non sono ordinati. Se non hai coppie chiave/valore questo si bloccherà.

Se avete un NSDictionary, è possibile utilizzare allValues.first!, ma dovrete lanciare il risultato perché il valore sarà un AnyObject:

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

o:

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

funziona, grazie! – PatrickFeng

5

cast a un dizionario Swift, se non è già uno. Quindi utilizzare la proprietà values, gettato a un array, e ottenere indice 0.

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

essere avvertito, tuttavia, se si dispone di più di una coppia chiave-valore, non esiste il "primo valore" - un dizionario non è ordinato. Questo trucco funziona solo perché sai per certo che il 'count' è 1. – matt

+5

' lascia v = dict.values.first! ' – vacawama

+0

@vacawama Vai avanti e dai una risposta! Eccellente. – matt

Problemi correlati