objective c - arreglos - NSArray agregando elementos
nsdictionary objective c (3)
Aquí hay otra forma de agregar objetos en una matriz si está trabajando con una matriz inmutable. Que es seguro para subprocesos
Puede usar el método arrayByAddingObject
. Algunas veces es mucho mejor. Aquí hay una discusión al respecto: NSMutableArray vs NSArray que es mejor
Tengo que crear un NSArray dinámico, es decir, no sé el tamaño de la matriz o los elementos que la matriz tendrá. Los elementos deben agregarse a la matriz dinámicamente. Miré la referencia de la clase NSArray. Hay un método llamado arrayWithObjects, que se debe usar en el momento de inicializar la matriz. Pero no sé cómo lograr lo que necesito hacer.
Necesito hacer algo como lo siguiente:
NSArray *stringArray = [[NSArray init] alloc] ;
for (int i = 0; i < data.size; i++){
stringArray.at(i) = getData(i);
}
Convierta su NSArray a NSMutableArray, y luego puede agregar valores dinámicamente:
NSMutableArray *mutableStringArray = [stringArray mutableCopy];
[mutableStringArray addObject:@"theNewElement"];
Si crea un NSArray
, no podrá agregarle elementos, ya que es inmutable. Debería intentar usar NSMutableArray
en NSMutableArray
lugar.
Además, alloc
el orden de alloc
e init
. alloc
crea una instancia e init
inicializa.
El código se vería así (suponiendo que getData
es una función global):
NSMutableArray *stringArray = [[NSMutableArray alloc] init];
for(int i=0; i< data.size; i++){
[stringArray addObject:getData(i)];
}