for([奖励allKeys]中的NSString *键)崩溃了应用程序?

时间:2012-06-12 10:09:37

标签: iphone ios

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

并在此

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

任何人都可以帮我摆脱这个吗?

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

在向rewards发送NSDictionary消息之前,使用NSAssert检查allKeys是否为{{1}}。