web-dev-qa-db-fra.com

Comment ajouter un objet au premier index de NSArray

Je veux ajouter un objet @ "TOUS LES ARTICLES" au premier index de NSARRAY.

Initialement, le tableau a 10 objets. Après l'ajout, le tableau doit contenir 11 objets.

19
Joker

Tout d'abord, NSArray doit être rempli lors de l'initialisation. Donc, si vous souhaitez ajouter un objet à un tableau, vous devez utiliser NSMutableArray. J'espère que le code suivant vous donnera une idée et une solution.

NSArray *array = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0", nil];
NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
[mutableArray addObject:@"ALL ITEMS"];
[mutableArray addObjectsFromArray:array];

La méthode addObject insérera l'objet comme dernier élément du NSMutableArray.

20
Shad

vous ne pouvez pas modifier NSArray pour insérer et ajouter. vous devez utiliser NSMutableArray. Si vous souhaitez insérer un objet à l'index spécifié

[array1 insertObject:@"ALL ITEMS" atIndex:0];

Dans Swift 2.0

array1.insertObject("ALL ITEMS", atIndex: 0)
49
arthankamal

Je sais que nous avons six réponses pour insertObject et une pour créer a(n) tableau NSMutableArray puis appeler addObject, mais il y a aussi ceci:

myArray = [@[@"ALL ITEMS"] arrayByAddingObjectsFromArray:myArray];

Je n'ai pas profilé non plus.

17
Chris Conover

NSArray est un tableau immuable que vous ne pouvez pas modifier en temps d'exécution. Utilisez NSMutableArray

[array insertObject:@"YourObject" atIndex:0];
15
Rajneesh071

Jetez un œil à la méthode insertObject: atIndex: de la classe NSMutableArray. Pour ajouter un objet à l'avant du tableau, utilisez 0 comme index:

[myMutableArray insertObject:myObject atIndex:0];
15
Sumit Mundra

NSArray est immuable mais vous pouvez utiliser la méthode insertObject: de la classe NSMutableArray

[array insertObject:@"all items" atIndex:0];
7
Prateek Bhanot

Comme vous avez déjà 10 objets dans votre tableau, et vous devez ajouter un autre élément à l'index 11 ... alors, vous devez essayer ceci .... j'espère que cela aide ..

NSMutableArray *yourArray = [[NSMutableArray alloc] initWithCapacity:11];
[yourArray insertObject:@"All Items" atIndex:0];
2
Vineet Singh

NSArray n'est pas dyanamic pour résoudre votre objectif, vous devez utiliser NSMutableArray. Référez-vous à la méthode suivante

- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;
2

Swift 3:

func addObject(){
    var arrayName:[String] = ["Name1", "Name2", "Name3"]
    arrayName.insert("Name0", at: 0)
    print("---> ",arrayName)
}

Output:
---> ["Name0","Name1", "Name2", "Name3"]
1
Deepak Tagadiya

Les documents Apple indiquent NSMutableArray Méthodes

 [temp insertObject:@"all" atIndex:0];
1
user3491090