2012-02-08 17 views
13

Necesito quitar objeto nulo añadido por¿Cómo podré eliminar los objetos [NSNull Null] de NSMutableArray?

[mutArrSkills addObject:[NSNull null]]; 

¿Es necesario repetir? ¿Hay alguna función para eliminar todos los valores nulos de NSMutableArray?

Si necesita Iterar, ¿cómo lo haré?

+1

removeObjectIdenticalTo también va a iterar la matriz así que ¿por qué no te autorateas? –

Respuesta

30

Usted puede utilizar removeObjectIdenticalTo: método NSMutableArray 's, de la siguiente manera

[mutArrSkills removeObjectIdenticalTo:[NSNull null]]; 

para eliminar los valores nulos. No es necesario iterar.

+0

¿Estás seguro? No lo hago porque 'Los objetos se consideran idénticos si sus direcciones de objeto son las mismas. Como debe saber, '[NSNull null]! = [NSNull null]' ... – Nekto

+0

Sí, en lo que concierne en este caso, los elementos que se agregan por '[mutArrSkills addObject: [NSNull null]];' son eliminado con esa llamada. – Ilanchezhian

+0

Sí. Está funcionando bien – Heena

1

removeObjectIdenticalTo:

Elimina todas las ocurrencias de un objeto dado de la matriz.

Discusión Este método utiliza el indexOfObjectIdenticalTo: método para localizar coincidencias y luego los elimina mediante el uso de removeObjectAtIndex :. Por lo tanto, las coincidencias se determinan usando direcciones de objeto. Si la matriz no contiene un Objeto, el método no tiene ningún efecto (aunque incurre en la sobrecarga de la búsqueda de los contenidos).

+0

¿Estás seguro? No lo hago porque 'Los objetos se consideran idénticos si sus direcciones de objeto son las mismas. COMO deberías saber, '[NSNull null]! = [NSNull null]' ... – Nekto

+0

@Nekto pls refiera mi respuesta. – sElanthiraiyan

-1

Puede repetir de esta manera.

for(int i=0,i<[mutArrSkills count]; i++) 
{ 
    if([[mutArrSkills objectAtIndex:i] isKindOfClass:[NSNull Class]]) 
    { 
    [mutArrSkills removeObjectAtIndex:i]; 
    } 
} 
+2

Eso no funciona en absoluto si tiene dos objetos sucesivos NSNull en la matriz. – gnasher729

1

Usted puede intentar hacer esto,

NSNull *nullValue = [NSNull null]; 

[mutArrSkills removeObjectIdenticalTo:nullValue]; 

espero que esto ayude.

Cuestiones relacionadas