Objective-C Language Confronto di stringhe


Esempio

Le stringhe vengono confrontate per l'uguaglianza usando isEqualToString:

L'operatore == verifica solo l'identità dell'oggetto e non confronta i valori logici degli oggetti, quindi non può essere utilizzato:

NSString *stringOne = @"example";
NSString *stringTwo = [stringOne mutableCopy];

BOOL objectsAreIdentical = (stringOne == stringTwo);          // NO
BOOL stringsAreEqual = [stringOne isEqualToString:stringTwo]; // YES

L'espressione (stringOne == stringTwo) verifica se gli indirizzi di memoria delle due stringhe sono uguali, che di solito non è quello che vogliamo.

Se le variabili di stringa possono essere nil devi preoccuparti anche di questo caso:

BOOL equalValues = stringOne == stringTwo || [stringOne isEqualToString:stringTwo];

Questa condizione restituisce YES quando le stringhe hanno valori uguali o entrambi sono nil .

Per ordinare due stringhe in ordine alfabetico, usa compare :.

NSComparisonResult result = [firstString compare:secondString];

NSComparisonResult può essere:

  • NSOrderedAscending : la prima stringa arriva prima della seconda stringa.
  • NSOrderedSame : le stringhe sono uguali.
  • NSOrderedDescending : la seconda stringa arriva prima della prima stringa.

Per confrontare l'uguaglianza di due stringhe, utilizzare isEqualToString:

BOOL result = [firstString isEqualToString:secondString];

Per confrontare con la stringa vuota ( @"" ), utilizzare meglio la length .

BOOL result = string.length == 0;