2012-02-08 11 views
13

Ho bisogno di rimuovere l'oggetto Null aggiunto daCome posso rimuovere gli oggetti [NSNull Null] da NSMutableArray?

[mutArrSkills addObject:[NSNull null]]; 

Ho bisogno di iterare? C'è qualche funzione per rimuovere tutti i valori nulli da NSMutableArray?

Se è necessario effettuare l'iterazione, come farò?

+1

il removeObjectIdenticalPer anche aumentare la matrice, quindi perché non ti autoalimentare. –

risposta

30

È possibile utilizzare il metodo NSMutableArray s' removeObjectIdenticalTo:, come segue

[mutArrSkills removeObjectIdenticalTo:[NSNull null]]; 

per rimuovere i valori nulli. Non c'è bisogno di iterare.

+0

Sei sicuro? Non lo sono perché "gli oggetti sono considerati identici se i loro indirizzi oggetto sono gli stessi". COME dovresti sapere, '[NSNull null]! = [NSNull null]' ... – Nekto

+0

Sì, per quanto riguarda in questo caso, gli elementi che sono aggiunti da '[mutArrSkills addObject: [NSNull null]];' sono rimosso con quella chiamata. – Ilanchezhian

+0

Yes.it sta funzionando bene – Heena

1

removeObjectIdenticalTo:

rimuovere tutte le occorrenze di un determinato oggetto dell'array.

Discussione Questo metodo utilizza l'indexOfObjectIdenticalTo: metodo per individuare le partite e poi li rimuove utilizzando removeObjectAtIndex :. Pertanto, le corrispondenze sono determinate utilizzando indirizzi di oggetti. Se la matrice non contiene anObject, il metodo non ha alcun effetto (sebbene ciò comporti il ​​sovraccarico della ricerca dei contenuti).

+0

Sei sicuro? Non lo sono perché "gli oggetti sono considerati identici se i loro indirizzi oggetto sono gli stessi". COME dovresti sapere, '[NSNull null]! = [NSNull null]' ... – Nekto

+0

@Nekto pls rimanda la mia risposta. – sElanthiraiyan

-1

Si può iterare in questo modo.

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

Questo non funziona affatto se nella matrice sono presenti due oggetti NSNull successivi. – gnasher729

1

Si può provare a fare questo,

NSNull *nullValue = [NSNull null]; 

[mutArrSkills removeObjectIdenticalTo:nullValue]; 

Spero che questo aiuta.