0

我想引用一个 ket 而不是它在 NSDictionary 中包含的内容,如下所示:

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

我想做这样的事情:

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

你能帮助我吗?

4

3 回答 3

1

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

NSArray*keys=[dict allKeys];
for(NSString *key in keys) {
    if ([key compare@"14819"] == NSOrderedSame) {
        do something
    }
}
于 2012-11-08T18:13:01.067 回答
1

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

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

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

NSLog(@"testing %d" ,containsKey);
于 2012-11-08T18:17:26.827 回答
1

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

获取allKeys和搜索密钥会起作用,但几乎可以肯定会更慢。字典是哈希表;objectForKey:使用这个事实,而allKeys没有。

于 2012-11-08T20:31:39.937 回答