2010-08-19 16 views
12

Quiero hacer una pregunta sobre el objetivo C. ¿El NSString * contiene algunas funciones para verificar que el NSString * contiene alguna cadena en el UITextField.text? Por ejemplo¿Cómo comprobar que NSString contiene el '%' o no?

NSString *checkString = @"abcd%" 

if(checkString contains '%') // I want this function 
    return YES; 
else 
    return NO; 
+0

UITextField contiene siempre una cuerda. – jtbandes

+0

@jtbandes, gracias por su respuesta. He cambiado la pregunta en base a los comentarios. Por favor echa un vistazo. – Questions

Respuesta

7

Puede utilizar - (NSRange)rangeOfString:(NSString *)aString. El código será algo como:

NSRange range = [UITextField.text rangeOfString:@"!"]; 

if (range.length > 0){ 
    NSLog(@"String contains '!'"); 
} 
else { 
    NSLog(@"No '!' found in string"); 
} 
+2

range.length es NSUinteger. siempre es> = 0 [enlace] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html#//apple_ref/doc/uid/ 20000018-SW23) – jackal

+0

Gracias, eso es correcto. He editado mi comentario. Debería ser> 0. –

44
if([checkString rangeOfString:@"%"].location != NSNotFound) 
    // hooray! 
+0

En una línea, ¡como nosotros los amamos! –

+3

'if ([checkString rangeOfString: @"% "]. Length) // aún más conciso' – wxactly

2

el código de la entrada anterior no es correcta

NSRange range = [UITextField.text rangeOfString:@"!"]; 

if (range.length >= 0){ 
    NSLog(@"String contains '!'"); 
} 
else { 
    NSLog(@"No '!' found in string"); 
} 

Debería ser "range.length> 0"

Cuestiones relacionadas