2012-07-24 94 views
0

我想弄清楚(如果可能)如何通過switch語句而不是for循環讀取NSDictionay鍵/值。用switch語句讀取NSDictionary

目前我在做這個

for (id key in seriesData) { 

    NSLog(@"key: %@, value: %@", key, [seriesData objectForKey:key]); 

} 

不過,我想它是在哪裏找的關鍵,如果密鑰被發現,然後我這個值放到一個變量i以後將使用switch語句。

希望這是有道理的,任何幫助將不勝感激。

回答

3

C switch語句僅適用於類似整數的鍵(其中包括enum)。無法將switch用於Objective-C對象,例如在NSDictionary中找到的對象。

+0

哦對...你認爲最好的解決方案是什麼呢? if語句裏面的for循環? – HurkNburkS 2012-07-24 04:03:27

+0

對於大多數問題,您可以使用「if」。對於您的具體問題很難說。 ObjC提供了很多動態功能,可以減少對此的需求。但對於大多數簡單的問題,'if' /'else if'是正確的工具。 – 2012-07-24 04:06:19

+0

順便說一下,您可以使用帶'hash'方法的開關,這就是它的用途。 – 2012-07-24 04:16:56

0

如果您熟悉使用塊,您可以使用一個基於塊的枚舉方法enumerateKeysAndObjectsUsingBlock爲例。此外,如果您正在尋找「過濾」鍵;如有特定的鍵子集(例如以「A」開頭的鍵),您可以使用其中一個謂詞方法,如keysOfEntriesPassingTest。

所有這些都記錄在NSDictionary類參考中。