2011-10-07 92 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”];

相关问题