2010-12-20 15 views

Antwort

30

Es gibt eine caseInsensitiveCompare: Methode auf NSString, warum liest du nicht the documentation? Die Methode gibt NSComparisonResult:

enum { 
    NSOrderedAscending = -1, 
    NSOrderedSame, 
    NSOrderedDescending 
}; 
typedef NSInteger NSComparisonResult; 

... ah, sorry, gerade jetzt erkannte ich Sie für Groß- und Kleinschreibung Gleichheit fragen. (Warum lese ich die Frage nicht? :-) Die Standardeinstellung isEqual: oder isEqualToString: Gleichheit sollte schon die Groß-/Kleinschreibung beachten, was gibt es?

+0

+1 - So viele praktische Methoden, so wenig Zeit beim Lesen der Klassenreferenzdokumente. :-) –

+0

Ich glaube es gibt immer eine bessere Art zu sagen "Warum liest du nicht die Dokumentation?", Danke für deine Antwort. – ersentekin

6

Eigentlich isEqualToString: funktioniert mit Groß-und Kleinschreibung beachten. als:

[elementName isEqualToString: @"Response"]; 

wenn Sie hier unempfindlich Vergleich zum Fall fragen wollen, dann ist der Code:

Sie beide vergleichbare Saite ändern können klein oder groß geschrieben, und vergleichen können, wie:

NSString *tempString = @"Response"; 
NSString *string1 = [elementName lowercaseString]; 
NSString *string2 = [tempString lowercaseString]; 

//The same code changes both strings in lowerCase. 
//Now You Can compare 

if([string1 isEqualToString:string2]) 
{ 

//Type your code here 

} 
14

Hier ist der Code, den Sie benötigen, um einen String zu vergleichen, ohne sich darum zu kümmern, ob es Klein- oder Großbuchstaben ist:

if ([elementName caseInsensitiveCompare:@"Response"]==NSOrderedSame) 
{ 
    // Your "elementName" variable IS "Response", "response", "reSPonse", etc 
    // 
} 
1
NSString *string1 = @"stringABC"; 
NSString *string2 = @"STRINGDEF"; 
NSComparisonResult result = [string1 caseInsensitiveCompare:string2]; 

if (result == NSOrderedAscending) { 
    NSLog(@"string1 comes before string2"); 
} else if (result == NSOrderedSame) { 
    NSLog(@"We're comparing the same string"); 
} else if (result == NSOrderedDescending) { 
    NSLog(@"string2 comes before string1"); 
}