2012-07-24 95 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类参考中。