Reputation: 313
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
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