I have few NSMutableArrays such as arr1,arr2,arr3,arr4. How can I merge all the NSMutableArrays together? Or is there any way to append in one array multiple times?
Example:
arr = [[NSMutableArray alloc] init];
//first loop
for(condition){
[arr addObject:firstLoopValue];
}
//second loop
for(condition){
[arr addObject:secondLoopValue];
}
//third loop
for(condition){
[arr addObject:thirdLoopValue];
}
And at the end final result {firstLoopValue...secondLoopValue...thirdLoopValue}
I am new to iOS that's why not sure if it's possible. Thanks in advance
EDIT I have tried in both ways like below:
rCodeArr = [[NSMutableArray alloc] init];
rDateArr = [[NSMutableArray alloc] init];
rAmountArr = [[NSMutableArray alloc] init];
jCodeArr = [[NSMutableArray alloc] init];
jDateArr = [[NSMutableArray alloc] init];
jAmountArr = [[NSMutableArray alloc] init];
jBalanceArr = [[NSMutableArray alloc] init];
NSArray *component = [journal getComponents:custCode];
for(int i = 0; i < [component count]; i++){
list = [component objectAtIndex:i];
NSArray *timestamp = [list.jDate componentsSeparatedByString:@" "];
NSString *splitdate = timestamp[0];
[jCodeArr addObject:list.jCode];
[jDateArr addObject:splitdate];
[jAmountArr addObject:list.jAmount];
[jBalanceArr addObject:list.jOutstanding];
}
NSArray *rcom = [receipt getComponents:custCode];
for(int j = 0; j < [rcom count]; j++){
rList = [rcom objectAtIndex:j];
NSArray *rtime = [rList.rDate componentsSeparatedByString:@" "];
NSString *rsplit = rtime[0];
[rCodeArr addObject:rList.rCode];
[rDateArr addObject:rsplit];
[rAmountArr addObject:rList.rAmount];
[rBalanceArr addObject:@"N/A"];
}
lblOneArray = [NSMutableArray arrayWithArray:rCodeArr];
[lblOneArray addObjectsFromArray:jCodeArr];
lblTwoArray = [NSMutableArray arrayWithArray:rDateArr];
[lblTwoArray addObjectsFromArray:jDateArr];
lblThreeArray = [NSMutableArray arrayWithArray:rAmountArr];
[lblThreeArray addObjectsFromArray:jAmountArr];
lblFourArray = [NSMutableArray arrayWithArray:jBalanceArr];
[lblFourArray addObjectsFromArray:rBalanceArr];
AND
lblOneArray = [[NSMutableArray alloc] init];
lblTwoArray = [[NSMutableArray alloc] init];
lblThreeArray = [[NSMutableArray alloc] init];
lblFourArray = [[NSMutableArray alloc] init];
[lblOneArray addObjectsFromArray:rCodeArr];
[lblOneArray addObjectsFromArray:jCodeArr];
[lblTwoArray addObjectsFromArray:rDateArr];
[lblTwoArray addObjectsFromArray:jDateArr];
[lblThreeArray addObjectsFromArray:jAmountArr];
[lblThreeArray addObjectsFromArray:jAmountArr];
[lblFourArray addObjectsFromArray:rBalanceArr];
[lblFourArray addObjectsFromArray:jBalanceArr];
But it's still crashing with the message ***** Terminating app due to uncaught exception 'NSRangeException', reason: '* -[__NSArrayM objectAtIndex:]: index 5 beyond bounds [0 .. 4]'
NOTE All these are NSMutableArray
You can create a final array by adding all array like below
NSMutableArray *newArray = [[NSMutableArray alloc] init];
[newArray addObjectsFromArray:firstArray];
[newArray addObjectsFromArray:secondArray];
It is not crashing as I have checked with below code
NSMutableArray *arr1 = [[NSMutableArray alloc]initWithObjects:@"1", @"2", nil];
NSMutableArray *arr2 = [[NSMutableArray alloc]initWithObjects:@"3", @"4", nil];
NSMutableArray *finalArray = [[NSMutableArray alloc]init];
[finalArray addObjectsFromArray:arr1];
[finalArray addObjectsFromArray:arr2];
To combine multiple arrays you can initialize array with elements of the 1st array and then add elements from it:
NSMutableArray* arr1 = [NSMutableArray arrayWithArray: firstLoopValue];
[arr1 addObjectsFromArray: secondLoopValue];
[arr1 addObjectsFromArray: thirdLoopValue];
[arr1 addObjectsFromArray: forthLoopValue];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With