2011-10-21 19 views
19

Quiero agregar [NSDecimalNumber numberWithInt:i] a una matriz usando for loop.Cómo agregar objetos a un NSArray usando for loop?

Se está codificada:

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

quiero como este, pero puede agregar sólo un objeto aquí ....

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

favor me ayude a esto, Gracias de antemano , Madan

+0

¿Por qué necesita la matriz de todos modos? Parece que el valor de la matriz en el índice 'i' siempre es' i'. – raymi

Respuesta

40

NSArray es inmutable. Utilice la versión mutable, 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 clase NSMutableArray declara la interfaz de programación a los objetos que gestionan una matriz modificable de objetos. Esta clase añade operaciones de inserción y supresión de la conducta básica matriz de manejo heredado de 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

no puede agregar objetos en tiempo de ejecución a NSArray.For adición o eliminación de objetos en tiempo de ejecución que tiene que usa NSMutableArray.

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

He encontrado que el uso de esta técnica es una gran manera de añadir fácilmente un par de elementos de más de un NSArray, esta fue la respuesta que estaba buscando cuando llegué a este hilo así que estoy publicar, ya que es una gran adición fácil.

Si Quiero añadir una nueva matriz a mi matriz actual

currentArray = [currentArray arrayByAddingObjectsFromArray: newArray]; 
1

NSArray complemento objeto como éste:

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

creo NSArray no puede addObject como NSMutableArray. Debe intentarlo:

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