2010-09-22 30 views
0

我有数组的字典:如果别人在NSDictionary中

array3 = [[NSDictionary dictionaryWithContentsOfFile:docpath2] retain]; 

这里没有问题。现在我有 一个包含一些数字的NSString * temp。 我想检查这个数字是否存在于字典中,而不是每个数组。

if([array3 valueForKey:temp]) 

是这样的吗? if循环没有执行,如果它是真的?

<dict> 
    <key>123456</key> 
    <array> 
     <string>low</string> 
     <string>High</string> 
    </array> 
     <key>78910</key> 
    <array> 
     <string>low</string> 
     <string>High</string> 
    </array> 
    </dict> 

例如temp = 78910,我希望找到它。

thks in adv

回答

1

不知道我收到你的问题,但我会给它一个镜头。

首先,objectForKey:是作为valueForKey:用于键值编码的方法,如果您的密钥以@开头,将会给您带来奇怪的结果。

然后,如果objectForKey:确实返回指针(即,返回值不是nil/NULL/0),则键存在,并且有一个值(将其返回)。所以,是的,你可以这样做:现在

if ([array3 objectForKey:temp]) { 
    // Do something, the dictionary does contain a value for 
    // the key referenced by "temp". 
} 

,如果你的钥匙像@"123"一个字符串,那么你当然可以做[array3 objectForKey:@"123"]。但如果你有一个整数,那么你需要做[array3 objectForKey:[NSString stringWithFormat:@"%d", 123]]

另请注意,您也可以使用NSNumberNSValue作为关键字。所以你可以这样做:

[myMutableDictionary setObject:someObject forKey:[NSNumber numberWithInt:123]]; 
myValue = [myMutableDictionary objectForKey:[NSNumber numberWithInt:123]]; 
if (myValue) { 
    // Do something. 
} 
0

这应该工作得很好。你为什么认为它不起作用?

+0

objectForKey的作品。 :) – Stefan 2010-09-22 20:48:26