0

我有一个 for 循环,我可以在其中从导入的文件中获取检索到的数据。

-(NSArray *) csvArray2CompaniesArray:(NSArray *) csvArray
{
    int i=0;

    NSMutableArray *ma = [[NSMutableArray alloc] init];

    for (NSArray * row in csvArray)
    {
        if (i>0)
        {
            Company *_company = [[Company alloc] init];

            _company.name = [row objectAtIndex:0];
            _company.address = [row objectAtIndex:1];
            _company.telephone = [row objectAtIndex:2];

            [ma addObject:_company];

            //[_companyAddress addObject:[row objectAtIndex:1]];
            //[_companyAddress addObject:_company.address];
        }
        i++;
    }
    return (NSArray *) ma;   
}

我想将循环中生成的数据保存在我创建的名为“companyAddress”的全局 NSMutableArray 中,我尝试使用

[_companyAddress addObject:[row objectAtIndex:1]];

或者

[_companyName addObject:_company.address];

当我尝试在屏幕上打印 _companyAddress 的内容时,它只输出“_company.address”中包含的最后一行,所以我认为 NSMutableArray 中的数据对于每个循环都会被覆盖而不是被添加。

谁能告诉我是否有任何方法可以正确添加数据?

先感谢您。

4

1 回答 1

0

NSMutableArray companyAddressapplication didFinishLaunchingWithOptions//在Application Delegate的方法中使用属性和synthesize加上分配的gobal声明

现在创建Application Delegate's对象说像您的应用程序代表名称是

AppDelegate then AppDelegate *objAppDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate]; 

该方法将是:

-(void) csvArray2CompaniesArray:(NSArray *) csvArray
{

 for (NSArray * row in csvArray)
 {
        Company *_company = [[Company alloc] init];

        _company.name = [row objectAtIndex:0];
        _company.address = [row objectAtIndex:1];
        _company.telephone = [row objectAtIndex:2];

        [objAppDelegate.companyAddress addObject:_company];
        [_company release];

 }
  NSLog(@"%@",objAppDelegate.companyAddress);
}

所有公司引用将存储在 gobal companyAddress mutablearray

编辑:只是突出显示文本以获得更好的答案

于 2012-05-23T07:02:19.923 回答