Jeder helfen Sie mir bitte die String-Vergleichstechnik in Objective-CComaparing NSString in Objective C
NSString *strNew1 = @"AA";
NSString *strNew2 = @"AA";
So zu verstehen, die Saiten vergleichen wir beide,
Method 1. if (strNew1 == strNew2) {
NSLog(@"Equal");
}
oder
nutzen könntenMethod 2: if ([strNew1 isEqualToString:strNew2]) {
NSLog(@"Equal");
}
In diesem Zustand sind beide erfolgreich. Aber ich bin mir bewusst, dass Methode 1 bei bestimmten anderen Bedingungen fehlschlägt. Und ich habe auch die folgenden Bedingungen ausprobiert (Alle sind Erfolg).
NSString *strNew = @"AA";
NSString *strNew1 = @"AA";
NSString *strNew11 = [[NSString alloc] initWithString:strNew1];
NSString *strNew3 = strNew;
NSArray *arr = @[@"AA"];
NSString *strNew4 = [arr objectAtIndex:0];
NSString *strNew5 = [arr objectAtIndex:0];
_test = strNew5;
_test1 = @"AA";
if ([strNew isEqualToString:strNew1]) {
NSLog(@"Equal");
}
if (strNew == strNew3) {
NSLog(@"Equal1");
}
if (strNew == [arr objectAtIndex:0]){
NSLog(@"Equal2");
}
if (strNew == strNew4){
NSLog(@"Equal3");
}
if (strNew5 == strNew4){
NSLog(@"Equal4");
}
if (strNew4 == [arr objectAtIndex:0]){
NSLog(@"Equal5");
}
if (strNew11 == [arr objectAtIndex:0]){
NSLog(@"Equal11");
}
if (self.test == strNew4){
NSLog(@"Equal3");
}
if (self.test == self.test1){
NSLog(@"Equal3");
}
TEST *test = [TEST new]; // Tried with a class with NSString property with value "AA" . (test.strTest value is @"AA")
if (strNew == test.strTest) {
NSLog(@"Equal"); //success
}
Ich wusste, die meisten von ihnen redundant sind. Ich bin nicht in der Lage, die Grundlagen dahinter zu verstehen. Bitte erläutern Sie das Konzept dahinter klar. Vielen Dank.
http: // Stapelüberlauf.com/questions/14036604/objective-c-nsobject-isequal-vs-Vergleich –
Verwenden Sie die -isEqualToString: -Methode, um den Wert von zwei Zeichenfolgen zu vergleichen. Mit dem Operator C == werden einfach die Adressen der Objekte verglichen. –