2012-04-20 2 views
7

У меня есть существующий массив, к которому я хочу добавить другой массив перед существующим массивом.ios добавить массив к массиву впереди

Добавить в конце нет никаких проблем с

[existingArray addObjectsFromArray:newArray]; 

Но как добавить его на фронт?

ответ

19

Вы можете сделать это без временного массива, а не предполагая, что newArray является NSMutableArray, и не делая NSIndexSet:

[existingArray replaceObjectsInRange:NSMakeRange(0,0) 
       withObjectsFromArray:newArray]; 
+0

thx man, я думаю, что это лучшее решение! приветствует – user944351

+0

Красивое и элегантное решение. –

3
[newArray addObjectsFromArray:existingArray]; 
existingArray = newArray; 

Надежда, это поможет you..enjoy ...

16

Такой же метод, но инвертировать порядок и переназначить:

[newArray addObjectsFromArray:existingArray]; 
existingArray = newArray; 
+0

thx man Я думаю, что у меня мои проводы пересекаются ^^ – user944351

2

Вы можете создать 3-й массив и добавить элементы в нужном порядке, а затем asing его обратно к первому:

NSMutableArray *tempArray = [NSMutableArray arrayWithArray:newArray]; 
[tempArray addObjectsFromArray:existingArray]; 
-2

чтобы вставить jjust до существующего массива и должны использовать индекс-

[newArray insertObject: existingArray atIndex:0] 
+0

, что все вставить весь массив по индексу 0 – user2387149

0

Вы можете попробовать добавить объекты индекса ниже код:

[existingArray insertObjects:newArray atIndexes:0]; 

спасибо ..!

+0

U получит ошибку [NSMutableArray insertObjects: atIndexes:]: индексный набор не может быть nil –

0

Подумайте две первые ответы более элегантны, но вот еще один способ:

Использование:

[existingArray insertObjects:newArray atIndexes:indexSet]; 

где indexSet бежит от 0 к newArray.count-1.

2

Для полноты здесь совсем другой путь:

NSIndexSet *indexes = [NSIndexSet indexSetWithIndexesInRange: (NSRange) {0, [newArray count]}]; 
[existingArray insertObjects: newArray atIndexes: indexes]; 
Смежные вопросы