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するNSDictionary前にであるかどうかを確認します。allKeys

于 2012-06-12T10:28:13.253 に答える