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 companyAddress// プロパティと合成を使用したグローバル宣言とapplication didFinishLaunchingWithOptions、アプリケーション デリゲートのメソッドでの割り当て

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 に答える