martes, 14 de diciembre de 2010

NSMutableArray

NSMutableArray


Como su nombre indica no es mas que un array que puede ser modificado , es decir pueden añadirse objetos a el y pueden eliminarse objetos. La forma de trabajo con un array mutable es casi parecida a la que vimos con la clase NSArray pero lógicamente los métodos cambian. Estos son algunos ejemplos de lo que podemos hacer con la clase NSMutableArray . Para comenzar crearemos un array mutable con un tamaño de 3, para eso utilizamos el método de clase arrayWithCapcity y le pasamos como argumento el tamaño ,después añadiremos contenido a el. Para inserta los valores en el array utilizamos el método addObject pasando como argumento el objeto que queramos insertar.
 
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
    {
      int i;
      //creamos el array con el método de clase arrayWithCapacity
      NSMutableArray *myarray=[NSMutableArray arrayWithCapacity:3];
      //insertamos valores
      for(i=0;i<3;i++){
        [myarray addObject:[NSNumber numberWithInt: i ]];
      }
      //lo mostramos
      NSLog(@"array: %@",myarray);
      return 0;
    }
Como NSMutableArray hereda de NSArray podemos utilizar métodos que contiene dicha clase como por ejemplo count que nos devuelve el numero de objetos que contiene el array. Quedaría así el ejemplo.
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
    {
      int i;
      //creamos el array con el metodo de clase arrayWithObjetcs
      NSMutableArray *myarray=[NSMutableArray arrayWithCapacity:3];
      //insertamos valores
      for(i=0;i<3;i++){
        [myarray addObject:[NSNumber numberWithInt:i]];
      }
      //lo mostramos
      NSLog(@"array: %@",myarray);
      //en la variable dimension colocamos el numero de objetos que contiene el array
      int dimension = [ myarray count ];
      // lo mostramos
      NSLog( @"%d",dimension );
      return 0;
    }
Apartir de este momento podemos trabajar con el array mutable ya sea insertando objetos o eliminándolos. En el siguiente ejemplo eliminaremos un objeto del array ,concretamente el ultimo de los valores, para ello usaremos el método removeLastObject.
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
   {
      int i;
     //creamos el array con el metodo de clase arrayWithObjetcs
     NSMutableArray *myarray=[NSMutableArray arrayWithCapacity:3];
     //insertamos valores
     for(i=0;i<3;i++)
       {
         [myarray addObject:[NSNumber numberWithInt:i]];
       }
     //lo mostramos
     NSLog(@"array: %@",myarray);
     //en la variable dimension colocamos el numero de objetos que contiene el array
     int dimension = [ myarray count ];
     // lo mostramos
     NSLog( @"dimension %d",dimension );
     //eliminamos el ultimo de los objetos del array
     [myarray removeLastObject];
     //mostramos el array
     NSLog(@"array. %@",myarray);
     return 0;
    }
También podemos insertar objetos en un lugar determinado con el el método insertObject como argumento le ponemos el lugar donde queramos insertar ,el método completo con su argumento es insertObject: objeto atIndex: . El ejemplo quedaría así:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
    {
      int i;
      //creamos el array con el metodo de clase arrayWithObjetcs
      NSMutableArray *myarray=[NSMutableArray arrayWithCapacity:3];
      //insertamos valores
      for(i=0;i<3;i++)
       {
         [myarray addObject:[NSNumber numberWithInt:i]];
       }
      //lo mostramos
      NSLog(@"array: %@",myarray);
      //en la variable dimension colocamos el numero de objetos que contiene el array
      int dimension = [ myarray count ];
      // lo mostramos
      NSLog( @"dimension %d",dimension );
      //insertamos el valor 1 en la posicion 1
      [myarray insertObject:[NSNumber numberWithInt: 1] atIndex: 1];
      //lo mostramos
      NSLog(@"array %@",myarray);
      return 0;
    }
De igual manera que insertamos un objeto en un lugar concreto del array ,también podemos eliminar un objeto determinado pasando como argumento la posición de dicho objeto al método removeObjectAtIndex ,de esta manera el ejemplo nos queda así:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
    {
      int i;
      //creamos el array con el metodo de clase arrayWithObjetcs
      NSMutableArray *myarray=[NSMutableArray arrayWithCapacity:3];
      //insertamos valores
      for(i=0;i<3;i++)
       {
         [myarray addObject:[NSNumber numberWithInt:i]];
       }
      //lo mostramos
      NSLog(@"array: %@",myarray);
      //en la variable dimension colocamos el numero de objetos que contiene el array
      int dimension = [ myarray count ];
      // lo mostramos
      NSLog( @"dimension %d",dimension );
      //insertamos el valor 1 en la posicion 1
      [myarray insertObject:[NSNumber numberWithInt: 1] atIndex: 1];
      //lo mostramos
      NSLog(@"array %@",myarray);
      //eliminamos el objeto en la posicion 1
      [myarray removeObjectAtIndex:1];
      //lo mostramos
      NSLog(@"array %@",myarray);
      return 0;
    }
Si queremos reemplazar un objeto que ese encuentre en un array por otro objeto diferente usaremos el método replaceObjectAtIndex: withObject: ,a este método le debemos de pasar dos argumentos , el primero de ellos es el lugar que ocupa el objeto que queremos reemplazar , el segundo el objeto que queremos insertar en su lugar.
Nos quedaría el ejemplo así:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
    {
      int i;
      //creamos el array con el metodo de clase arrayWithObjetcs
      NSMutableArray *myarray=[NSMutableArray arrayWithCapacity:3];
      //insertamos valores
      for(i=0;i<3;i++)
       {
         [myarray addObject:[NSNumber numberWithInt:i]];
       }
      //lo mostramos
      NSLog(@"array: %@",myarray);
      //en la variable dimension colocamos el numero de objetos que contiene el array
      int dimension = [ myarray count ];
      // lo mostramos
      NSLog( @"dimension %d",dimension );
      //insertamos el valor 1 en la posicion 1
      [myarray insertObject:[NSNumber numberWithInt: 1] atIndex: 1];
      //lo mostramos
      NSLog(@"array %@",myarray);
      //eliminamos el objeto en la posicion 1
      [myarray removeObjectAtIndex:1];
      //lo mostramos
      NSLog(@"array %@",myarray);
      //reemplazamos el objeto 1 por 6
      [myarray replaceObjectAtIndex:1 withObject:[NSNumber numberWithInt: 6]];
      //lo mostramos
      NSLog(@"array %@",myarray);
      return 0;
    }
Por ultimo también podemos borrar todo el contenido de un array usando el método removeAllObjects ,este método nos dejara un array vacío.
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
    {
      int i;
      //creamos el array con el metodo de clase arrayWithObjetcs
      NSMutableArray *myarray=[NSMutableArray arrayWithCapacity:3];
      //insertamos valores
      for(i=0;i<3;i++)
       {
         [myarray addObject:[NSNumber numberWithInt:i]];
       }
      //lo mostramos
      NSLog(@"array: %@",myarray);
      //en la variable dimension colocamos el numero de objetos que contiene el array
      int dimension = [ myarray count ];
      // lo mostramos
      NSLog( @"dimension %d",dimension );
      //insertamos el valor 1 en la posicion 1
      [myarray insertObject:[NSNumber numberWithInt: 1] atIndex: 1];
      //lo mostramos
      NSLog(@"array %@",myarray);
      //eliminamos el objeto en la posicion 1
      [myarray removeObjectAtIndex:1];
      //lo mostramos
      NSLog(@"array %@",myarray);
      //reemplazamos el objeto 1 por 6
      [myarray replaceObjectAtIndex:1 withObject:[NSNumber numberWithInt: 6]];
      //lo mostramos
      NSLog(@"array %@",myarray);
      //vaciamos el array
      [myarray removeAllObjects];
      //lo mostramos
      NSLog(@"array %@",myarray);
      return 0;
    }
De nuevo decirte que estos son solo unos ejemplo de la utilización de la clase NSMutableArray,para poder ver todos y cada uno de los métodos tienes esta pagina.En ella encontraras toda la información que necesitas para poder trabajar con los array mutables.

No hay comentarios:

Publicar un comentario

468x60