2014-12-16 3 views

ответ

16

Если у вас есть Swift Dictionary и вы знаете, что именно 1 пару ключ/значение вы можете сделать это:

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

Если у вас более одной пары ключ/значение, тогда нет «первого» значения, поскольку словари неупорядочены. Если у вас нет пар ключ/значение, это приведет к сбою.

Если у вас есть NSDictionary, вы можете использовать allValues.first!, но вам придется бросить результат, поскольку значение будет AnyObject:

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

или:

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

он работает, спасибо! – PatrickFeng

5

Cast в Swift словарь, если это не один уже. Затем используйте values свойство, литая в массив, и получить индекс 0.

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

Будьте осторожны, однако, если у вас несколько пар ключ-значение, нет «первого значения» - словарь неупорядочен. Этот трюк работает только потому, что вы точно знаете, что 'count' равен 1. – matt

+5

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

+0

@vacawama Вперед и дайте это как ответ! Отлично. – matt