0

我有一个应用程序,它有一个从 web 服务返回的字典。我正在将该字典传递给另一个视图控制器。

而在这个

NSDictionary *rewards=[rewardsdictionary objectForKey:@"rewards"];
NSLog(@"%@",rewards);

NSMutableArray *dataArray=[[NSMutableArray alloc] init];
for(NSString *key in [rewards allKeys])
{
    NSDictionary *dict1=[rewards objectForKey:key];
    [dataArray addObject:dict1];
}
self.rewardsarray=[[NSMutableArray alloc] init];
self.rewardsarray=dataArray;

但是在这一行for(NSString *key in [rewards allKeys])中,应用程序正在崩溃。但是当我打印奖励或奖励字典时,值就在那里。

-[__NSArrayM allKeys]:无法识别的选择器发送到实例 0x76636b0

有人可以帮我摆脱这个吗?

4

2 回答 2

6

显然,rewards不是一个NSDictionary。这是一个NSArray.

于 2012-06-12T10:17:26.367 回答
0

在向其发送消息之前,使用 NSAssert 检查是否rewards为 an 。NSDictionaryallKeys

于 2012-06-12T10:28:13.253 回答