2010-09-22 48 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

相關問題