Confronto tra stringhe in Objective-C

Al momento ho creato un server web che comunico tramite SOAP con la mia app per iPhone. Sto restituendo una stringa contenente un GUID e quando provo a confrontare questo con un’altra stringa ottengo alcuni risultati strani.

Perché questo non dovrebbe sparare? Sicuramente le due corde sono una corrispondenza?

NSString *myString = @"hello world"; if(myString == @"hello world") return; 

Utilizzare -isEqualToString: metodo per confrontare il valore di due stringhe. Usando l’operatore C == si confronteranno semplicemente gli indirizzi degli oggetti.

 if ([category isEqualToString:@"Some String"]) { // Do stuff... } 

È ansible utilizzare il confronto tra maiuscole e minuscole o senza distinzione tra maiuscole e minuscole, a seconda di ciò che è necessario. Maiuscole / minuscole è così:

 if ([category isEqualToString:@"Some String"]) { // Both strings are equal without respect to their case. } 

Case-insensitive è come questo:

 if ([category compare:@"Some String" options:NSCaseInsensitiveSearch] == NSOrderedSame) { // Both strings are equal with respect to their case. } 

È ansible confrontare la stringa con le funzioni di seguito.

 NSString *first = @"abc"; NSString *second = @"abc"; NSString *third = [[NSString alloc] initWithString:@"abc"]; NSLog(@"%d", (second == third)) NSLog(@"%d", (first == second)); NSLog(@"%d", [first isEqualToString:second]); NSLog(@"%d", [first isEqualToString:third]); Output will be :- 0 1 1 1