在NSDictionary中存储这个的最佳方法是什么?

时间:2011-10-07 07:03:23

标签: iphone objective-c ipad

说我有一本字典词典,如下所示:

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

什么是更好的存储方式?我遇到的唯一问题是当我试图获得TRUE的值时,我需要知道密钥..如果我不知道密钥那么我必须迭代字典..但是在这case我总是只迭代一个键 - 对象对。

寻找一些建议

3 个答案:

答案 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”];