0

辞書からデータを取得中に次のエラーが発生します

" -[__NSCFString objectForKey:]: 認識されないセレクターがインスタンス 0x4fbb80 に送信されました"

ここに私のコードがあります

  NSDictionary *dic = [XMLReader dictionaryForXMLString:class.returnData error:nil];

  MyGiftsarray = [[dic objectForKey:@"response"] objectForKey:@"gifts"];


  for (NSDictionary *element in MyGiftsarray) {

  [MyGiftsnamearray addObject:[element objectForKey:@"name"]];

  [MyGiftsChkarray addObject:[element objectForKey:@"chk"]];

   [MyGiftsIdarray addObject:[element objectForKey:@"id"]];

   [MyGiftsApprovedarray addObject:[element objectForKey:@"approved"]];

   [MyGiftsisCompletedarray addObject:[element objectForKey:@"completed"]];

 }

これは、データを取得しようとする NSDictionary です。 MyGiftsDict->(

 {
    Appliedpoint = 500;
    Requiredpoint = 5000;
    approved = N;
    chk = 50;
    completed = 0;
    id = 66;
    name = "1-800Flowers.com";
},
    {
    Appliedpoint = 85;
    Requiredpoint = 2500;
    approved = N;
    chk = 25;
    completed = 0;
    id = 71;
    name = "Bath Body Works";
},
    {
    Appliedpoint = 5;
    Requiredpoint = 2500;
    approved = N;
    chk = 25;
    completed = 0;
    id = 75;
    name = "Buca di Beppo";
},
    {
    Appliedpoint = 36;
    Requiredpoint = 2500;
    approved = N;
    chk = 25;
    completed = 0;
    id = 66;
    name = "1-800Flowers.com";
},
    {
    Appliedpoint = 25;
    Requiredpoint = 5000;
    approved = N;
    chk = 50;
    completed = 0;
    id = 90;
    name = "Jelly Belly";
},
    {
    Appliedpoint = 120;
    Requiredpoint = 500;
    approved = N;
    chk = 5;
    completed = 0;
    id = 129;
    name = "Amazon.com";
}

)

4

3 に答える 3

3

あなたは間違った方法で繰り返しています-使用-

MyGiftsDict = [[dic objectForKey:@"response"] objectForKey:@"gifts"];

そして、辞書を段階的に繰り返します。次のようなものを使用する必要があります-

for(NSString *key in [MyGiftsDict allKeys])
{
    [MyGiftsnamearray addObject:[MyGiftsDict objectForKey:key]];
}
于 2012-07-05T06:34:29.440 に答える
0

Gifts はそれ自体が NSDictionary です。NSArray ではありません。forループは必要ありません。簡単に使う

[MyGiftsNameArray addObject:[MyGiftsArray objectForKey:@"name"];

など。

于 2012-07-05T06:34:56.167 に答える
0

forサイクルは必要ないと思います。

于 2012-07-05T06:35:57.937 に答える