2011-03-11 22 views
6

Estoy aprendiendo cómo codificar, así que gracias por su paciencia en esta simple pregunta.iOS compare botón título de la cadena

Aquí está mi código:

- (IBAction)buttonWasPressed:(id)sender { 
    NSString *buttonName = [sender titleForState:UIControlStateNormal]; 
    if (buttonName == @"Button 1") { 
     do something 
    } 

¿Cómo comparo el título del botón pasa como remitente a una cadena?

Muchas gracias por la ayuda.

Respuesta

9

en objective-c no se pueden comparar cadenas utilizando "==", , sino que debe usar el método isEqualToString de la clase NSString para comparar una cadena con otra. Método

if ([buttonName isEqualToString: @"Button 1"]) { 
    // do something 
} 
+1

También le sugiero que se tome unos minutos y eche un vistazo a NSString y sus métodos, hay mucho que necesitará en algún momento: http://developer.apple.com/library/mac/ # documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html – csch

+0

¡Gracias por la ayuda! Me aseguraré de revisar ese documento. –

3

Uso -isEqualToString:

if ([buttonName isEqualToString:@"Button 1"]) 
    ... 

usando == se compara ponters, no los valores de cadena reales que contienen

1

La mejor manera de comparar cadena es:

NSString *string1 = <your string>; 
NSString *string2 = <your string>; 

if ([string1 caseInsensitiveCompare:string2] == NSOrderedSame) { 
    //strings are same 
} else { 
    //strings are not same 
} 
0

He encontrado que con Xcode 8.3.1, es necesario hacer:

if([self.myButton isEqual: @"My text"]) { 
//do this 
} 
Cuestiones relacionadas