我在一个NSDictionary变量中有以下数据:
{
value = "TV-PG";
}我想知道如何在这里获取键" value“的值。
我试过了:
NSDictionary *fieldMaturityRating = [[parsedItems objectAtIndex:0] objectForKey:@"field_maturity_rating"];
NSString *dateRelease = [fieldMaturityRating objectForKey:@"value"];(其中,fieldMaturityRating是具有给定值的NSDictionary ),我得到:
-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0xd9cd3f0
[10530:707] *** Terminating app due to uncaught exception: -[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0xd9cd3f0有人能帮帮我吗?谢谢。
注意:如果我暂停执行,并在这里提供的第一行代码之后执行po,我会得到以下结果:
(gdb) po fieldMaturityRatingNew
<__NSArrayM 0x79af250>(
{
value = "TV-PG";
}
)发布于 2012-02-11 07:21:03
po实际上显示了您的问题:
(gdb) po fieldMaturityRatingNew
<__NSArrayM 0x79af250>(
{
value = "TV-PG";
}
)外部的(和)表示您的对象实际上是一个数组。
里面是{和}表示字典的地方。
所以你真的想:
NSString *value = [[fieldMaturityRatingNew objectAtIndex:0] objectForKey:@"value"];发布于 2012-02-11 06:51:05
这意味着您的fieldMaturityRating实际上不是一个NSDictionary。确保您没有在代码中的某个位置将其设置为数组。
编辑:
这意味着您的fieldMaturityRating实际上是一个包含NSDictionary的NSArray。如果这是你想要的数据结构,那么你可以像这样访问你的值。
NSString *dateRelease = [[fieldMaturityRating objectAtIndex:0] objectForKey:@"value"];我认为这不是您想要的数据结构,所以您应该调查一下为什么parsedItems数组返回NSArray而不是NSDictionary。如果你追踪到这个问题,你就可以在未来停止任何令人头疼的事情。
发布于 2012-02-11 06:52:41
您实际上是在向NSMutableArray实例发送该NSDictionary消息。
您可能希望再次检查代码,因为在指向NSDictionary时,objectForKey:方法是正确的。
https://stackoverflow.com/questions/9235898
复制相似问题