我有一个应用程序,它正在从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
任何人都可以帮我摆脱这个吗?
答案 0 :(得分:6)
显然,rewards
不是NSDictionary
。这是一个NSArray
。
答案 1 :(得分:0)
在向rewards
发送NSDictionary
消息之前,使用NSAssert检查allKeys
是否为{{1}}。