繁体   English   中英

如何从NSDictionary将数据获取到NSArray

[英]How to get data into NSArray from NSDictionary

我从字典中获取数据时出现以下错误

-[__ 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";
}

您以错误的方式进行迭代-使用-

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

然后逐步遍历字典。 您需要使用类似-

for(NSString *key in [MyGiftsDict allKeys])
{
    [MyGiftsnamearray addObject:[MyGiftsDict objectForKey:key]];
}

礼物本身就是NSDictionary。 不是NSArray! 您不需要for循环。 简单使用

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

等等。

我认为您不需要for周期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM