2012-03-27 8 views
6

Ho letto una stringa da un risultato JSON come segue:Come determinare se le stringhe sono uguali nell'obiettivo C?

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

Allora provo per determinare se la stringa è pari al valore "N"

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

if restituisce allways l'altro parte, anche se il risultato è "N". Entrambi hanno lo stesso valore ma l'affermazione restituisce sempre false.

+2

Puoi 'NSLog (@"% @ ", strResult);' prima della tua istruzione if e aggiungi l'output alla tua domanda? – Stenerson

+4

Make it 'NSLog (@" [% @] len =% d, strResult, [strResult length]); 'per buona misura – peterept

+1

come suggerito da Peterept, quasi certamente hai spazi iniziali o finali –

risposta

6

Ho trovato un modo per pulire la stringa e quindi verificare se sono uguali.

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]; 
}