2014-08-29 113 views
0

无论密钥是什么,我都需要能够显示对象值。或者用对象键显示一个对象。使用NSDictionary对象从数组中获取对象

NSMutableArray *array = [NSMutableArray array]; 
    NSMutableDictionary *dict= [[NSMutableDictionary alloc] init]; 

    [dict setObject:[NSNumber numberWithInt:10] forKey:@"key"]; 
    [array addObject:dict]; 

    NSLog(@"Key: %@", [[array objectAtIndex:0] key]); 
    NSLog(@"Value: %@", [[array objectAtIndex:0] valueForKey:[[array objectAtIndex:0] key]]); 

    //Both logs "[__NSDictionaryM key]: unrecognized selector sent to instance" 

为什么不工作?我该怎么做?

注意:在这个例子中keyValue是 “钥匙”,但我不知道原来代码中的keyValue ..

+0

'[阵列objectAtIndex:0] ObjectForKey:@ “钥匙”];' – 2014-08-29 11:50:33

+0

查看更新后的问题 – Peter 2014-08-29 11:52:23

+1

'[阵列objectAtIndex:0] allKeys]。 '它将返回NSArray与该字典的所有键。 – 2014-08-29 11:53:12

回答

3
NSMutableArray *array = [NSMutableArray array]; 

NSMutableDictionary *dict= [[NSMutableDictionary alloc] init]; 
[dict setObject:[NSNumber numberWithInt:10] forKey:@"key"]; 
[array addObject:dict]; 

尝试

NSDictionary *dict = [array objectAtIndex:0]; 
NSArray *values = [dict allValues]; 
NSArray *keys = [dict allKeys]; 

登录
NSLog(@"Keys: %@", keys); 
NSLog(@"Values: %@", values); 

for (id key in keys) { 

    NSLog(@"Value: %@ for Key: %@", [dict objectForKey:key], key); 
} 
1

你可以这样做

for(NSDictionary *aDict in array) 
    { 
     for(NSString *aStrKey in aDict) 
     { 
      NSLog(@"%@", [aDict valueForKey:aStrKey]); 
     } 
    }