2015-09-03 2 views
1

Я добавляю содержание в NSArray к NSMutableArray с помощью этого метода:Как добавить содержимое NSArray в начале непустого NSMutableArray?

[InboxArray addObjectsFromArray:TrackArray]; 

Однако, мне нужно добавить объекты, содержащиеся в TrackArray в начале InboxArray без использования временного массива. Есть ли какой-либо конкретный метод в Objective-C, который я могу использовать для этой задачи? (Количество объектов в TrackArray может изменяться.)

ответ

2

addObjects всегда добавляет. Вы хотите insertObjects:atIndexes:. Существует также метод insertObject:atIndex: для вставки одного объекта. Вот как это сделать.

NSMutableArray *array = [[NSMutableArray alloc] initWithArray:@[@"a",@"b",@"c"]]; 
    NSArray *InboxArray = @[@"z",@"x",@"y"]; 
    NSRange arrayRange = NSMakeRange(0, [array count]); 
    NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:arrayRange]; 
    [array insertObjects: InboxArray atIndexes:indexSet]; 
    NSLog(@"%@",array); 

Метод insertObjects: нужен набор индексов, который представляет индексы объектов в новый массив, так что множество индексов должна быть такой же длины, как массив вставке InboxArray

Выходной сигнал для приведенный ниже код кода:

z,x,y,a,b,c 
4

использовать это, чтобы добавить объекты TrackArray в начале массива:

NSRange arrayRange = NSMakeRange(0, [TrackArray count]);  
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:arrayRange]; 
[InboxArray insertObjects: TrackArray atIndexes: indexSet]; 
Смежные вопросы