Ich habe ein Array von Zeichenfolgen. Das Array wurde erstellt, indem eine durch Kommas getrennte Zeichenfolge in mehrere Komponentenzeichenfolgen unterteilt wurde. Ich kann diese Komponenten NSLoggen und sie erscheinen korrekt. Allerdings, wenn ich eine dieser Komponenten testen, für die sehr wider die NSLog es als enthält, zeigt, schlägt der Test noch:Das Testen auf Zeichengleichheit stimmt nicht richtig überein
NSArray*parseLine=[[NSArray alloc] initWithArray:[newline componentsSeparatedByString:@","]];
NSLog(@"*%@*"[parseLine objectAtIndex:1]);
Ausgang:
*N/A*
So klar "N/A" ist es, diese drei Charaktere genau.
schlägt jedoch fehl, dies den Test:
if ([parseLine objectAtIndex:1][email protected]"N/A") //never passes
Auch dies versucht:
if ((NSString*)[parseLine objectAtIndex:1][email protected]"N/A")
Warum es nicht den Test bestehen?
wird, wenn Sie ein Zeichenfolgenliteral „foo“, schreiben sie an einer bestimmten Speicheradresse im Speicher gespeichert wird. Wenn Sie ein String-Literal in einer if-Anweisung verwenden if (etwas == "foo") Sie vergleichen, wenn etwas auf "foo" zeigt nicht, ob der Inhalt von etwas gleich der Zeichenfolge "foo" –