2011-10-21 8 views
19

Desidero aggiungere [NSDecimalNumber numberWithInt:i] a un array utilizzando per ciclo.Come aggiungere oggetti a un NSArray usando per ciclo?

Si è codificata:

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]; 

voglio come questo, ma posso aggiungere solo un oggetto qui ....

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

Please help me fuori da questo, Grazie in anticipo , Madan

+0

Perché hai bisogno dell'array comunque? Sembra che il valore nell'array all'indice 'i' sia sempre' i'. – raymi

risposta

40

NSArray è immutabile. Utilizzare la versione mutabile, NSMutableArray.

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

... 
5
NSMutableArray *customTickLocations = [NSMutableArray array]; 
for (int i=0; i<totalImagesOnXaxis; i++) 
{ 
    [customTickLocations addObject:[NSDecimalNumber numberWithInt:i]]; 
} 

La classe NSMutableArray dichiara l'interfaccia di programmazione ad oggetti che gestiscono una matrice modificabile di oggetti. Questa classe aggiunge operazioni di inserimento e cancellazione per il comportamento di base array-gestione ereditato da NSArray

NSMutableArray Class Reference

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

    } 
9

non è possibile aggiungere oggetti in fase di esecuzione per NSArray.For aggiunta o la rimozione di oggetti in fase di esecuzione si deve usa NSMutableArray.

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

Ho trovato che l'uso di questa tecnica è un ottimo modo per aggiungere facilmente un paio di elementi a un NSArray, questa è stata la risposta che cercavo quando sono arrivato in questo thread in modo metto come si tratta di un grande aggiunta facile.

Se voglio aggiungere un nuovo array per il mio allineamento attuale

currentArray = [currentArray arrayByAddingObjectsFromArray: newArray]; 
1

NSArray add oggetto come questo:

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

Penso NSArray non può addObject come NSMutableArray. Provalo:

NSMutableArray *mulArr = [NSMutableArray new]; 
[mulArr addObject:[NSDecimalNumber numberWithInt:number]]; 
Problemi correlati