Cocoa - 在NSDictionary中引用一个KEY

时间:2012-11-08 18:07:58

标签: ios json cocoa key nsdictionary

我想在这样的NSDictionary中引用一个而不是它包含的内容:

key {
    14819 =     {
        contactDetails =         {
            dictionary =             {
                interests =                 {
                    Movies =   
      ...

我想做这样的事情:

if([key isEqualToString:@"14819"]){
 do something
}

你能帮助我吗?

3 个答案:

答案 0 :(得分:1)

你可以使用nsdictionary中的allkeys方法来获取键数组,而不是迭代它来进行比较!像这样:

NSArray*keys=[dict allKeys];
for(NSString *key in keys) {
    if ([key compare@"14819"] == NSOrderedSame) {
        do something
    }
}

答案 1 :(得分:1)

应该可以使用allKeys查找它。写了一个简单的例子,希望这有帮助。

NSMutableDictionary *testDictionary = [[NSMutableDictionary alloc]init];
[testDictionary setObject:@"value" forKey:@"testObject"];

BOOL containsKey = [[testDictionary allKeys] containsObject:@"testObject"];

NSLog(@"testing %d" ,containsKey);

答案 2 :(得分:1)

如果您只想测试字典中是否存在密钥,请使用objectForKey:并测试该对象是否不是nil

获取allKeys并搜索密钥会有效,但几乎肯定会变慢。字典是哈希表; objectForKey:使用了这一事实,而allKeys则没有。