user2032083
user2032083

Reputation: 313

I need to use intermediate Array in loop

I have a basic question. I need to use intemediate array in loop. This is my code:

NSMutableArray *interArray = [[NSMutableArray alloc] initWithCapacity:2];
NSMutableArray *finalyArray = [[NSMutableArray alloc] init];
NSInteger a;
for(int j=0; j<5; j++)
{    [interArray removeAllObjects];
     for(int i=0; i<2; i++)
     {
     a = [array ObjectAtInde:i];  // this is existing array
     [interArray addObject:a];
     }
    [finalyArray addObject:interArray];
}

but when i delete objects in intermediate array I get empty Arrays in finaly Array. How to fix it? Thanks

Upvotes: 1

Views: 52

Answers (1)

Droppy
Droppy

Reputation: 9721

The reason it won't work as you expect is because interArray is a reference to an object which you empty and fill in the loop and then add to the finalyArray, however you are adding the same intermediate array each time.

What you want to do it create a new intermediate array within the loop and therefore each intermediate array will be a separate object:

NSMutableArray *finalyArray = [[NSMutableArray alloc] init];
NSInteger a;
for(int j=0; j<5; j++)
{
     NSMutableArray *interArray = [[NSMutableArray alloc] initWithCapacity:2];
     for(int i=0; i<2; i++)
     {
     a = [array ObjectAtIndex:i];  // this is existing array
     [interArray addObject:a];
     }
    [finalyArray addObject:interArray];
}

(Note this code won't work anyway as you cannot store NSInteger in a collection class without first wrapping it in a NSNumber object).

Upvotes: 1

Related Questions