2011-10-07 112 views
-1

說我有字典的解釋是這樣的:什麼是將此存儲在NSDictionary中的最佳方法?

{0, {"Kansas City", TRUE}} 
{1, {"Arizona", TRUE}} 
{2, {"Mexico City", TRUE}} 
{3, {"Arkansas", TRUE}} 
{4, {"California", TRUE}} 
{5, {"Illinois", TRUE}} 

什麼是更好的方式來存儲呢?我遇到的唯一問題是當我試圖獲得TRUE的值時,我需要知道密鑰..如果我不知道密鑰,那麼我必須迭代字典..但是在這情況下,我將永遠只是爲了一個鍵 - 對象而迭代。

尋找一些建議

+0

如何在不知道密鑰的情況下檢索密鑰的值?你能解釋一下你的實際需求嗎? – EmptyStack

回答

0

你確定要使用字典而不是數組嗎?看起來你需要一個排序的集合(1,2,3 ...)。所以,我會的NSDictionary對象(與城市和布爾值表示的一個鍵)存儲到的NSArray ...或以其他方式,如果指數沒有關係,我會用一個的NSDictionary

ps。檢索你必須使用的布爾值boolValue

0

看起來像這樣更像是一個帶有字典的數組。如果你的第一個值是數字(至少在這個例子中),你知道關鍵字(這當然也是一個數字),你可以[myArray objectAtIndex:i]然後做任何你想要的內容的字典。

// --- editted --- //

+0

'getobjectforkey'?我們不需要Java約定。 – JeremyP

+0

好吧,[myArray objectAtIndex:i]; –

0
NSDictionary *cityDic = [NSDictionary dictionaryWithObjectsAndKeys:@"Kansas City", @"kCity", [NSNumber numberWithBool:TRUE], @"kBoolean", nil]; 

NSArray *arr = [NSArray arrayWithObjects:[NSNumber numberWithInt:0], cityDic, nil]; 

NSArray *totalArr= [NSArray arrayWithArray:arr]; 

NSLog(@"%@", totalArr); 

2011-10-07 16:21:16.769 StackoverflowTest [552:F803( 0, { kBoolean = 1 ; kCity = 「堪薩斯城」; } )

你訪問[[totalArr objectAtIndex:1] forKey:@ 「kCity或kBoolean」];

相關問題