2010-08-21 16 views
31

¿hay una clase disponible para verificar si una matriz no contiene un objeto? quiero hacer algo comocomprobando si una matriz no contiene un determinado objeto

if [(myarray doesntContain @"object")] 

es esto posible

+2

@Alx, la hora de elegir las etiquetas para su pregunta, generalmente es una buena idea asegurarse de que uno o f ellos es el idioma para el que hace la pregunta =) – Rob

+1

En cuyo caso, ¿qué tipo de arreglo? ¿Una matriz C básica o una NSArray? – Stephen

+0

es una matriz ns básica ... –

Respuesta

93

Para NSArray uso -containsObject::

if (![myarray containsObject:someObject]) { 
    // ... 
} 
+0

Sé que contiene el objeto Quiero ver si existe no es un objeto específico en la matriz y si no hay para agregar uno. Sé cómo agregarlo, simplemente no sé cómo verificar si falta un objeto. –

+0

@Alx: Es por eso que '!' está ahí, básicamente es * "de lo contrario (array containsObject)" *. No existe un '-doesntContainObject:' específico, ya que es trivial utilizar '!' O '== NO'. –

+0

lo siento, no vi que lo siento :( Muchas gracias por cierto .. –

0

Si usted está tratando con un NSArray, su primer punto de contacto debe probablemente será el Apple documentation for NSArray, y probablemente el método containsObject, hay un ejemplo en this question.

+0

que sé sobre contiene el objeto quiero ver si no hay un objeto específico en la matriz y si no hay para agregar uno. Sé cómo agregarlo, simplemente no sé cómo comprobar si falta un objeto. –

+0

Invierte la llamada a 'containsObject' como Georg lo indicó en su respuesta =) – Rob

0

me escribió una categoría NSArray para lograr estos controles negadas a través de los métodos de instancia, como se había solicitado inicialmente .. La primera es para un grupo determinado de tipo matriz de objetos, el último para un control singular. Estos devuelven SÍ en el caso de que la instancia de la matriz NO contenga el objeto u objetos pasados. ¿Por qué? Las exclamaciones me confunden.

NSArray + Additions.h

-(BOOL)doesNotContainObjects:(id<NSFastEnumeration>)enumerable;

-(BOOL)doesNotContainObject:(id)object;

NSArray + Additions.m

-(BOOL)doesNotContainObjects:(id<NSFastEnumeration>)enumerable { 
    for (id x in enumerable) { 
    if ([self containsObject:x]) return NO; // exists, abort! 
    } 
    return YES; // it ain't in there, return TRUE; 
} 
- (BOOL)doesNotContainObject:(id)object { 
    if ([self containsObject:object]) return NO; return YES; 
} 
Cuestiones relacionadas