迭代通过NSMutableArray在数组中添加对象

时间:2015-11-02 07:54:52

标签: ios objective-c nsmutablearray

我有一系列公司的JSON回复。 然后我迭代数组,以便将它们添加为Company对象。我的问题是,如果我在循环中[[Company alloc]init];,我将创建内存泄漏。如果我在循环中分配init-init,那么我的所有值都是相同的。什么是最好的方法? 代码如下:

resultArray = [[NSMutableArray alloc]init];
responseArray = [allDataDictionary objectForKey:@"companies"];

 Company *com = [[Company alloc]init];
            //Looping through the array and creating the objects Movie and adding them on a new array that will hold the objects
            for(int i=0;i<responseArray.count;i++){


                helperDictionary =(NSDictionary*)[responseArray objectAtIndex:i];

                com.title = [helperDictionary objectForKey:@"company_title"];
                NSLog(@"company title %@",com.title);
                [resultArray addObject:com];

            }

公司名称在结果数组中始终是相同的值。如果我将公司alloc-init放在循环中,则值是正确的。

1 个答案:

答案 0 :(得分:2)

我假设你想为字典中的每个条目创建一个新的Company对象?在这种情况下,您必须每次都创建一个新实例:

for (NSDictionary *dict in responseArray) {
    Company company = [[Company new] autorelease];
    company.title = dict[@"company_title"];
    [resultArray addObject:company];
}