2015-03-25 32 views
0

我想獲取NSMutableDictionary的所有鍵值作爲字符串數組。我使用myNSMutableDictionary.allkeys來獲取數組的值,但是我找不到解開關鍵值的方法。如何打開可選字符串數組中的NSMutableDictionary.allkeys

這是我到目前爲止已經試過:

for (key, _) in NSMutableDictionary { 
     println("THIS IS MY NEW KEY\(key)") 
    } 

我想這

var myArray:NSArray = myNSMutableDictionary.allKeys 
var string:NSString? = uniqueIDArray[0] as? NSString 
println("This is unwraped value\(string!)") 

var myArray:Array = myNSMutableDictionary.allKeys 
println("This is unwraped value\(myArray[0])") 

我不斷收到代替kMSZgoTmiX值作爲Optional("kMSZgoTmiX")這是我需要的關鍵價值

謝謝你的幫助!

+0

你怎麼嘗試過哪些問題? – NobodyNada 2015-03-25 01:14:12

+0

這就是我得到這是我的新KEYOptional(「kMSZgoTmiX」)我試圖得到這個這是我的新密鑰kMSZgoTmiX – 2015-03-25 01:16:25

+1

你知道你不需要myArray:NSArray或字符串:NSString?冒號後面的部分是從你指定的類型中推斷出來的,所以它是多餘的。如果右側未知或者無法從中推斷出類型,則只需要等號左側的:格式。 – clearlight 2015-03-25 01:16:31

回答

1

所以,你有與是字符串值的字典(這是什麼鑰匙,假設字符串):

var dictionaryOfStringValues : [String:String] = /* your dictionary */ 

而且要遍歷內容:

for (key, val) in dictionaryOfStringValues { 
    // use key and val 
} 

如果您只是想以某種方式您可以輕鬆地迭代數值:

var theValues = dictionaryOfStringValues.values 

如果您堅持認爲theValuesArray

var theValuesAsAnArray = Array(dictionaryOfStringValues.values) 

如果你開始與一個NSMutableDictionary,然後將其轉換在它第一次進入你的銀行代碼爲斯威夫特字典點。使用as變體來做到這一點。之後,純Swift。

像這樣:

7> for (key, value) in ["a":1, "b":2] { 
    8.  println (key) 
    9.  println (value) 
10. }  
b 
2 
a 
1 
0
let myNSMutableDictionary = NSMutableDictionary() 

myNSMutableDictionary["myKey1"] = 5 
myNSMutableDictionary["myKey2"] = 10 
myNSMutableDictionary["myKey3"] = 15 

let myKeysArrayUnsorted = myNSMutableDictionary.allKeys as [String] 
let myValuesArrayUnsorted = myNSMutableDictionary.allValues as [Int] 

let keyString = myKeysArrayUnsorted[0] // "myKey2" 
let keyValue = myNSMutableDictionary[keyString] as Int // 10 

println("This is my first unsorted key \(keyString) = \(keyValue)") 

let myKeysArraySorted = (myNSMutableDictionary.allKeys as [String]).sorted(<) 

for key in myKeysArraySorted { 
    println(myNSMutableDictionary[key]!) // 5 10 15 
} 
相關問題