【问题标题】:How to Add An array into Array index by index in iOS?如何在iOS中按索引将数组添加到数组索引中?
【发布时间】:2014-11-13 10:21:46
【问题描述】:

我是 iOS 开发的新手。我想将我的 JSON 解析数据字典数组键值添加到另一个数组中,但它只会将我的最后一个数组索引添加到新数组中。

我的代码就像

-(void)fetchedData:(NSData *)responsedata
{
 if (responsedata.length > 0)
{
    NSError* error;

    self.json = [NSJSONSerialization JSONObjectWithData:responsedata options:kNilOptions error:&error];
    if ([[_json objectForKey:@"data"] isKindOfClass:[NSArray class]])
    {
        NSArray *arr = (NSArray *)[_json objectForKey:@"data"];
        [self.imageArray addObjectsFromArray:arr];
        [self.storeViewTable reloadData];
    }
    self.storeViewTable.hidden=FALSE;
    }
    NSMutableArray *imagearray=[[NSMutableArray alloc]init];
    for (index=0; index <[self.imageArray count]; index ++)
    {
        for(NSDictionary *dict in self.imageArray )
        {
            imagearray = [dict valueForKey:@"demopage"];
            self.imagesa = imagearray;
        }
    }

     NSLog(@"Array Count %d",[self.imagesa count]);
     NSLog(@"Another array Count %d",[self.imageArray count]);
}

这里 self.imagearray 是我的主数组,其中包含我的所有 JSON 数据,但我想从旧数据中解析一个新数据并将其添加到 self.imagesa 数组中对于 self-images 键的值是演示页面和 Self .imagearray 计数是三个(3)所以我希望我所有的三个索引值都包含在 self.imagesa 中,但它只包含最后一个索引值,请给我解决方案。我的 Web 服务链接在这里。 link

【问题讨论】:

  • 删除imagearray = [dict valueForKey:@"demopage"]; self.imagesa = imagearray;并添加[self.imagesa addObject: [dict valueForKey:@"demopage"]];,我认为你不需要for (index=0; index &lt;[self.imageArray count]; index ++)这个循环。
  • @Chinttu-Maddy-Ramani 我为(NSDictionary *dict in self.imageArray){ [self.imagesa addObject: [dict valueForKey:@"demopage"]]; } NSLog(@"数组计数 %@",self.imagesa);然后它返回 null

标签: ios arrays json


【解决方案1】:

您的代码应如下所示。

id json = [NSJSONSerialization JSONObjectWithData:responsedata options:kNilOptions error:&error];
if ([[json objectForKey:@"data"] isKindOfClass:[NSArray class]])
{
    NSArray *arr = (NSArray *)[json objectForKey:@"data"];
    [imageArray addObjectsFromArray:arr];
}

//do not alloc init if you have already alloc init array.
NSMutableArray *imagesa=[[NSMutableArray alloc]init];
for(NSDictionary *dict in imageArray )
{
    [imagesa addObject:@{@"demopage":[dict valueForKey:@"demopage"]}];
}

NSLog(@"Array Count %lu",(unsigned long)[imagesa count]);
NSLog(@"Another array Count %lu",(unsigned long)[imageArray count]);

我得到以下输出

数组计数 3

另一个数组计数 3

注意

如果您想将所有 demopage 字典添加到 imagesa 数组,请替换您的 for 循环

for(NSDictionary *dict in imageArray )
{
    NSArray *arr = (NSArray *)[dict valueForKey:@"demopage"];
    [imagesa addObjectsFromArray:arr];
}

输出是

数组计数 69

另一个数组计数 3

【讨论】:

  • 这里我想要我的三个索引数组通过索引到 self.imagesa 意味着我的数组 self.imegesa 也包含三个索引,因为我想将三个链接图像打印到不同视图控制器中
  • @AshishGabani 无法理解您要说的内容。在第一种类型中,您将获得 3 个数组计数。在 0 index 你会得到 0 index demopagedata。
  • 兄弟这里我的 self.image 数组包含三个索引,所以每个索引都有 -demopage 键我想添加这个 -demopage 键值基于我的 self.image 索引到 self.imagesa 意味着我的主数组有三个索引,所以我想要我的 self.imagearray 也有三个索引,在这里我的 Webservices 链接你显示它然后你明白truemanindiamagazine.com/webservice/magazine_list.php
  • 是的,我知道我得到了第一个索引数据,但我想要基于索引的所有数据。表示我的数据也包含三个索引
  • @AshishGabani 你的意思是你想要像 (demopage=(index 0),demopage=(index 1),demopage=(index 2)) 这样的数组?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-14
相关资源
最近更新 更多