8
votes

Nsarray: ajoutez plusieurs objets avec la même valeur

Comment puis-je ajouter plusieurs objets à mon nsarray? Chaque objet aura la même valeur.

ex.

Je veux la valeur "donc" ajoutée à mon tableau 10 fois


0 commentaires

5 Réponses :


8
votes

Vous pouvez initialiser le tableau avec un ensemble d'objets: xxx pré>

ou vous pouvez utiliser un tableau mutable et ajouter les objets ultérieurement: p>

NSMutableArray * mutableItems = [[NSMutableArray new] autorelease];
for (int i = 0; i < 10; i++)
    [mutableItems addObject:blah];


0 commentaires

2
votes

Il suffit de les ajouter avec InitwithObjects: (ou quelle que soit la méthode que vous préférez). Un nsarray ne nécessite pas que ses objets soient uniques, vous pouvez donc ajouter le même objet (ou les mêmes objets) plusieurs fois.


0 commentaires

6
votes

Si vous ne voulez pas utiliser de matrices mutables et que vous ne voulez pas non plus répéter votre identifiant n em> temps, utilisez ce nsarray code> peut être initialisé à partir d'une c- Array de style:

@interface NSArray (Foo) 
+ (NSArray*)arrayByRepeatingObject:(id)obj times:(NSUInteger)t;
@end

@implementation NSArray (Foo)
+ (NSArray*)arrayByRepeatingObject:(id)obj times:(NSUInteger)t {
    id arr[t];
    for(NSUInteger i=0; i<t; ++i) 
        arr[i] = obj;
    return [NSArray arrayWithObjects:arr count:t];    
}
@end

// ...
NSLog(@"%@", [NSArray arrayByRepeatingObject:@"SO" times:10]);


0 commentaires

2
votes

Maintenant, vous pouvez utiliser la syntaxe littérale Array.

nsarray * éléments = @ [@ "SO", @ "SO", @ "SO", @ "SO", @ "SO"];

Vous pouvez accéder à chaque élément comme des éléments [0];


0 commentaires

5
votes

My  ¢ 2:

NSMutableArray * items = [NSMutableArray new];
while ([items count] < count)
    [items addObject: object];


0 commentaires