在特定位置将对象从一个阵列添加到另一个阵列

时间:2011-03-03 17:41:27

标签: objective-c nsmutablearray

我有两个Mutable Arrays,firstArray和secondArray。两者都填充了对象。我想在firstArray中的特定点(不是在结尾而不是在开头)将secondArray中的对象添加到firstArray。有没有办法做到这一点?目前我只使用这行代码:

[self.firstArray addObjectsFromArray:secondArray];

我想要的是FOO CODE:self.firstArray addObjectFromArray AT SPECIFIC POINT X:secondArray,specificpointX)

感谢任何帮助!

3 个答案:

答案 0 :(得分:14)

回答我自己的问题,这有效:

 int z;
 z = (int)self.specificPosition;

 // Start adding at index position z and secondArray has count items

 NSRange range = NSMakeRange(z, [secondArray count]);     
 NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:range];
 [self.firstArray insertObjects:secondArray atIndexes:indexSet];

答案 1 :(得分:1)

查看NSMutableArray的文档。

您只需使用insertObject:AtIndex:功能。

我在下面列出了一个简单的示例,其中我创建了一个大小为10的数组,并在索引5处添加了一个对象。

NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:10];
[myArray insertObject:@"Hello World" AtIndex:5];

我希望这会有所帮助。

答案 2 :(得分:0)

<强>夫特:

let insetIndex = 3  // your any insert index
var array1 = ["1", "2", "3", "4", "5"]
let array2 = ["10", "11"]
array1.insert(contentsOf: array2, at: insetIndex)

<强> OC

int loc = 3;  // your any insert index
NSMutableArray *array1 = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", nil];
NSMutableArray *array2 = [NSMutableArray arrayWithObjects:@"10", @"11", nil];

NSRange range = NSMakeRange(loc, array2.count);  // NOTE: NSMakeRange(NSUInteger loc, NSUInteger len)  len must be your array2.cout, or will crash with differs from count of index set

NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:range];
[array1 insertObjects:array2 atIndexes:indexSet];

输出:[“1”,“2”,“3”,“10”,“11”,“4”,“5”]