web-dev-qa-db-fra.com

Comment ajouter des objets à un NSArray en utilisant une boucle for?

Je veux ajouter le [NSDecimalNumber numberWithInt:i] à un tableau utilisant for for loop. 

C'est codé en dur:

 NSArray *customTickLocations = [NSArray arrayWithObjects: [NSDecimalNumber numberWithInt:1],[NSDecimalNumber numberWithInt:2],[NSDecimalNumber numberWithInt:3],[NSDecimalNumber numberWithInt:4],[NSDecimalNumber numberWithInt:5],[NSDecimalNumber numberWithInt:6],[NSDecimalNumber numberWithInt:7],[NSDecimalNumber numberWithInt:8],[NSDecimalNumber numberWithInt:9],[NSDecimalNumber numberWithInt:10],[NSDecimalNumber numberWithInt:11],[NSDecimalNumber numberWithInt:12],nil];

Je veux comme ça, mais je ne peux ajouter qu'un seul objet ici ....

for (int i=0; i<totalImagesOnXaxis; i++)
{
    customTickLocations = [NSArray arrayWithObject:[NSDecimalNumber numberWithInt:i]];
}

Aidez-moi, s'il vous plaît, à sortir de ça,

20
Madan Mohan

NSArray estimmuable. Utilisez la version mutable,NSMutableArray.

42
EmptyStack
NSMutableArray * customTickLocations = [NSMutableArray new];
for (int idx = 0; idx < 12; ++idx) {
    [customTickLocations addObject:[NSDecimalNumber numberWithInt:idx]];
}

...
20
justin

vous ne pouvez pas ajouter d'objets à l'exécution à NSArray.Pour ajouter ou supprimer des objets à l'exécution, vous devez utiliser NSMutableArray.

NSMutableArray *mutableArray=[[NSMutableArray alloc] init];
for (int i=0; i<10; i++) {
    [mutableArray addObject:[NSDecimalNumber numberWithInt:i]];
}
9
Warewolf
NSMutableArray *customTickLocations = [NSMutableArray array];
for (int i=0; i<totalImagesOnXaxis; i++)
{
    [customTickLocations addObject:[NSDecimalNumber numberWithInt:i]];
}

La classe NSMutableArray déclare l'interface de programmation aux objets qui gèrent un tableau d'objets modifiable. Cette classe ajoute des opérations d’insertion et de suppression au comportement de base de la manipulation de tableau hérité de NSArray.

Référence de la classe NSMutableArray

5
beryllium
NSMutableArray * customTickLocations = [[NSMutableArray alloc] init];
for(int i = 0; i<WhateverNoYouWant;i++){
NSDecimalNumber * x = [NSDecimalNumber numberWithInt:i]
[customTickLocations addObject:x]

    }
5
Radu

J'ai constaté que l'utilisation de cette technique était un excellent moyen d'ajouter facilement quelques éléments supplémentaires à un tableau NSArray. C'est la réponse que je cherchais lorsque je suis arrivé sur ce sujet.

Si je veux ajouter un nouveau tableau à mon tableau actuel

currentArray = [currentArray arrayByAddingObjectsFromArray: newArray]; 
4
simon_smiley

NSArray ajouter un objet comme ceci:

NSArray *arr = @["1","2","3","4"];

Je pense que NSArray ne peut pas addObject comme NSMutableArray. Tu devrais l'essayer:

NSMutableArray *mulArr = [NSMutableArray new];
[mulArr addObject:[NSDecimalNumber numberWithInt:number]];
1
AmyNguyen