【发布时间】:2018-01-18 14:04:16
【问题描述】:
我有几个NSMutableArrays,例如 arr1,arr2,arr3,arr4。如何将所有 NSMutableArrays 合并在一起?或者有什么方法可以多次附加到一个数组中?
示例:
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];
}
最后的结果{firstLoopValue...secondLoopValue...thirdLoopValue}
我是 iOS 新手,所以不确定是否可行。提前致谢
编辑 我已经尝试了以下两种方式:
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];
与
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];
但它仍然崩溃并显示消息 ***** 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* -[__NSArrayM objectAtIndex:]: index 5 beyond bounds [0 .. 4]”
注意所有这些都是 NSMutableArray
【问题讨论】:
-
放置断点并查看它在哪一行崩溃
标签: ios objective-c arrays for-loop nsmutablearray