2014-04-06 58 views
0

在某些語言中有像À這樣的字母,我看到對於表格視圖部分,原生iOS將À放在與A相同的部分下。
我想做同樣的事情,我通過比較第一個字母來構建我的部分,所以我需要À將等於A.
我試過使用localizedCompare但我仍然沒有弄明白那兩個是等於。比較特殊字符,如À與常規A

有沒有辦法對這種比較?或正常化À所以它會是A

+0

查看NSString比較函數的選項。它在NSString文檔中都有。 – gnasher729

回答

0

您可以先將其轉換爲常規字母,然後進行比較。

NSString *originalStr = @"À béautiful day"; 
NSData *d = [originalStr dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSString *converted = [[NSString alloc] initWithData:d encoding:NSASCIIStringEncoding]; 
0

下面是關於CFStringTransform上NSHipser http://nshipster.com/cfstringtransform/一個偉大的文章

接下來,應用kCFStringTransformStripCombiningMarks改造,以消除任何變音符號或重音。

2

不要根據其他答案進行轉換或轉換。首先,嘗試-[NSString localizedStandardCompare:]。如果這樣做不符合要求,請將NSDiacriticInsensitiveSearch通過NSString比較方法(如-compare:options:range:locale:)中的一個通過選項。您也可能想要使用其他選項,例如NSCaseInsensitiveSearch