2011-04-08 24 views
6

Quiero dividir cadena en NSMutableArraycómo dividir cadena en NSMutableArray

- (NSArray *)componentsSeparatedByString:(NSString *)separator 

está disponible pero éste es por no NSArray para NSMutableArray.

necesito porque después spliting Quiero quitar el elemento de matriz utilizando

-(void)removeObjectAtIndex:(NSUInteger)index 

que no es posible con NSArray.

Gracias

Respuesta

28

Puede también acaba de obtener una copia mutable de la matriz devuelta:

NSMutableArray *array = [[myString componentsSeparatedByString:@"..."] mutableCopy]; 

Además, recuerde que la copia, como alloc, hace asignar memoria nueva. Por lo tanto, cuando se utiliza en código que no es ARC, debe autorelease la matriz copiada o manualmente release cuando haya terminado con ella.

+0

Perfecto ... esto es lo que necesito, muchas gracias Mucho – Pooja

+1

El problema que tengo con este enfoque es que introduce una pérdida de memoria en manos de un desarrollador inexperto. Esto parece especialmente arriesgado cuando se manejan arreglos (que retienen sus elementos). Agrega un 'autorelease' y todo está bien. – mvds

+0

Editado para incluir esa información. – GendoIkari

9

hacer una nueva NSMutableArray usando

NSArray *array = [NSString componentsSeparatedByString:@"..."]; 
NSMutableArray *mutable = [NSMutableArray arrayWithArray:array]; 
+0

esto también está bien, pero estoy dividido en cadena y luego en cadena y de nuevo 2-3 veces hasta que obtengo la matriz perfecta ... de todos modos muchas gracias – Pooja

2

Crear una NSMutableArray de la salida NSArray creado por componentsSeparatedByString.

NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithArray:array];