2011-09-13 10 views

Respuesta

43

Puede hacerlo así,

NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil]; 
if ([yourArray containsObject: yourStringToFind]) { 
    // do found 
} else { 
    // do not found 
} 
1

Depende de sus necesidades. O bien indexOfObject si le importa la igualdad (lo más probable) o indexOfObjectIdenticalTo si le importa, en realidad es el mismo objeto (es decir, la misma dirección).

Fuente:

6

iteración o containsObject orden n son maneras de encontrar.

Si desea una búsqueda de tiempo constante, también puede mantener una tabla hash como NSSet o NSHashTable, pero eso aumenta el espacio pero ahorra tiempo.

NSArray* strings = [NSArray arrayWithObjects: @"one", @"two", @"three", nil]; 
NSSet *set = [NSSet setWithArray:strings]; 

NSString* stringToFind = @"two"; 
NSLog(@"array contains: %d", (int)[strings containsObject:stringToFind]); 
NSLog(@"set contains: %d", (int)[set containsObject:stringToFind]); 
Cuestiones relacionadas