2012-03-27 4 views
6

las ich eine Zeichenfolge aus einem Ergebnis JSON wie folgt:Wie ermittelt man, ob Strings in Objective C gleich sind?

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

ich dann versuchen, wenn die Zeichenfolge auf den Wert „N“

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

Die gleich ist zu bestimmen, ob Anweisung Allways die sonst zurückgibt Teil, obwohl das Ergebnis "N" ist. Sie haben beide den gleichen Wert, aber die Anweisung gibt immer false zurück.

+2

Können Sie 'NSLog (@"% @ ", strResult);' vor Ihrer if-Anweisung und fügen Sie die Ausgabe zu Ihrer Frage hinzu? – Stenerson

+4

Machen Sie es 'NSLog (@" [% @] len =% d, strResult, [strResult Länge]); 'für gutes Maß. – peterept

+1

wie peterept vorschlägt, haben Sie fast sicher führende oder nachstehende Leerzeichen. –

Antwort

6

Ich fand eine Möglichkeit, die Zeichenfolge zu reinigen und dann zu überprüfen, ob sie gleich sind.

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