如何读取数组键的所有NSDictionary对象

时间:2010-11-27 13:13:42

标签: iphone objective-c nsdictionary


我有一个字典“playerDict”,它从plist中读取数据,其中有名称(myKey),每个键有9个关联对象。

我正在尝试将特定键(myKeys)的所有对象读入NSMutableArray(theObjects)。我已经阅读了课程参考和搜索互联网,但无法想象我们这个,可能非常简单,问题。

在我完成的所有其他测试中,我尝试了以下操作,但是将键返回到对象而不是对象。

  

theObjects = [playerDict objectForKey:myKeys];

任何可以给出提示的人?

这是创建dict的代码,我剥离了它:

NSArray *objs = [NSArray arrayWithObjects:[NSNumber numberWithBool:playerObject.diffHard],[NSNumber numberWithBool:playerObject.diffMedium],
             [NSNumber numberWithBool:playerObject.diffEasy],[NSNumber numberWithBool:playerObject.currentGame],
             [NSNumber numberWithInt:playerObject.currentGameQuestion],[NSNumber numberWithInt:playerObject.currentGameRightAnswer],
             [NSNumber numberWithInt:playerObject.currentGameType],[NSNumber numberWithInt:playerObject.nrOfType0Games],
             [NSNumber numberWithInt:playerObject.type0Result], nil];
NSDictionary *newPlayerDict = [NSDictionary dictionaryWithObjectsAndKeys:objs, keyString, nil];

2 个答案:

答案 0 :(得分:4)

尝试valueForKey:

答案 1 :(得分:0)

您只能在NSDictionary中为每个键存储一个项目。如果您需要为同一个键创建多个项目的故事,则需要先将每个项目添加到NSArray(或NSSet),然后将其设置为字典中的对象。

如果您发布了创建字典的代码,那么可能会有用。

更新:看起来你已经在这样做了。所以:

NSArray *myObjs=[playerDict objectForKey:keyString];

会得到你的数组。这个:

BOOL diffHard=[[myObjs objectAtIndex:0] boolValue];
BOOL diffMedium=[[myObjs objectAtIndex:1] boolValue];

将获得您存储在数组的第一个和第二个对象中的值。其余的重复一遍。