2011-09-01 12 views

Respuesta

135
if ([mystring isEqualToString:@"Johns"]){ 
    //do some stuff in here 
} 
3

Aquí es otro método es posible que desee utilizar en algunas circunstancias:

NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ]; 

if ([validNames indexOfObject:myString].location != NSNotFound) 
{ 
    // The myString is one of the names in the valid names array 
} 

O si usted tiene una gran cantidad de nombres en la matriz puede usar NSSet, ya que encontrar un objeto es más rápido que en una matriz ((O(Log N) vs O(N))

NSSet * validNamesSet = [NSSet setWithArray:validNames]; 

if ([validNamesSet containsObject:myString]) 
{ 
    // This is faster than indexOfObject for large sets 
} 

Estos métodos funcionan porque NSSet y NSArray uso isEqual: que llamará isEqualToString: para NSString casos.

+0

¿Cuándo le gustaría utilizar el enfoque 'location' en lugar de un ciclo for con el método' isEqualToString'? – Pavan

+1

@Pavan Es un poco más fácil usar 'indexOfObject' que un bucle for (menos líneas de código). Aparte de eso, hay poca diferencia. El método NSSet puede ser más rápido que el bucle en una matriz para conjuntos grandes, pero en la mayoría de los casos no será significativo. – Robert

Cuestiones relacionadas