2012-03-27 43 views
6

leí una cadena de resultado JSON de la siguiente manera:¿Cómo determinar si las cadenas son iguales en el objetivo C?

NSString *strResult = [[NSString alloc] initWithBytes:[data bytes] 
               length:[data length] 
              encoding:NSUTF8StringEncoding]; 

que luego tratar de determinar si la cadena es igual al valor "N"

if ([strResult isEqualToString:@"N"]) 
{ 
    [lblImageOK setHidden:YES]; 
} 
else 
{ 
    [lblImageOk setHidden:NO]; 
} 

La sentencia if Allways devuelve el otro parte, a pesar de que el resultado es "N". Ambos tienen el mismo valor pero la declaración devuelve falso siempre.

+2

¿Puede 'NSLog (@"% @ ", strResult);' antes de su instrucción if y añada el resultado a su pregunta? – Stenerson

+4

Hazlo 'NSLog (@" [% @] len =% d, strResult, [strResult length]); 'para una buena medida. – peterept

+1

como lo sugiere peterept, casi seguro que tienes espacios iniciales o finales. –

Respuesta

6

Encontré una forma de limpiar la cuerda y luego verifico si son iguales.

NSString *strResult = [[NSString alloc] initWithBytes:[data bytes] 
              length:[data length] 
             encoding:NSUTF8StringEncoding]; 

strResult = [strResult stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 
strResult = [strResult stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

if ([strResult isEqualToString:@"N"]) 
{ 
    [lblImageOK setHidden:YES]; 
} 
else 
{ 
    [lblImageOk setHidden:NO]; 
} 
Cuestiones relacionadas