说我有一本字典词典,如下所示:
{0, {"Kansas City", TRUE}}
{1, {"Arizona", TRUE}}
{2, {"Mexico City", TRUE}}
{3, {"Arkansas", TRUE}}
{4, {"California", TRUE}}
{5, {"Illinois", TRUE}}
什么是更好的存储方式?我遇到的唯一问题是当我试图获得TRUE的值时,我需要知道密钥..如果我不知道密钥那么我必须迭代字典..但是在这case我总是只迭代一个键 - 对象对。
寻找一些建议
答案 0 :(得分:0)
您确定使用字典而不是数组吗?看来你需要一个有序的集合(1,2,3 ......)。所以,我会将 NSDictionary 对象(带有由城市和布尔值表示的键)存储到 NSArray ...或者,如果索引无关紧要,我会会使用一个 NSDictionary 。
PS。要检索布尔值,必须使用 boolValue
答案 1 :(得分:0)
似乎这更像是一个带有字典的数组。如果您的第一个值是数字(至少在这个例子中)并且您知道键(显然也是一个数字),您可以只需[myArray objectAtIndex:i]然后使用字典中的任何内容执行任何操作。
// --- editted --- //
答案 2 :(得分: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”];