2010-12-20 26 views

cevap

30

NSString üzerinde caseInsensitiveCompare: yöntemi var, neden the documentation okumuyorsunuz? yöntem NSComparisonResult döndürür:

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

... ah, üzgünüm, sadece şimdi sana harf duyarlı eşitlik için soruyorsunuz fark etti. (Neden şu soruyu okumadım? :-) Varsayılan isEqual: veya isEqualToString: eşitliği zaten büyük/küçük harfe duyarlı olmalı, ne veriyor?

+0

+1 - Pek çok kullanışlı yöntem, sınıf referans belgelerini okumak için çok az zaman harcadı. :-) –

+0

Her zaman daha iyi bir yolun "neden belgeleri okuyorsun?" Diyebileceğine inanıyorum, cevabınız için teşekkürler btw. – ersentekin

6

Aslında isEqualToString: büyük/küçük harfe duyarlılık ile çalışır. olarak: kodudur

[elementName isEqualToString: @"Response"]; 

sonra burada karşılaştırmak duyarsız durumda sormak istiyorum:

Sen küçük veya büyük harfe karşılaştırılabilir dize hem değiştirebilir ve aynı karşılaştırabilirsiniz

:

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

Bir dizeyi, küçük harf veya büyük harf olup olmadığına bakmadan karşılaştırmak zorunda olduğunuz kod:

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"); 
} 
İlgili konular