2010-11-02 56 views
0

我想排序一個數組,我有這樣的元音被視爲正常版本的字符(ä== a等)。我認爲localizedCaseInsensitiveCompare:應該做的伎倆。但事實並非如此。任何人?排序NSArray igonring Umlauts

最佳
-f

回答

3

localizedCaseInsensitiveCompare:比較了使用在由用戶選擇的當前語言的標準規則,忽略的情況。在你的情況下,你想忽略變音符號,而不是這種情況。這意味着你需要做別的事情。

您需要使用compare:options:並通過NSDiacriticInsensitiveSearch作爲選項。見here

要使用它對數組進行排序,您需要使用sortedArrayUsingComparator:的塊,或者在NSString中實現類別方法,並將該選擇器傳遞給sortedArrayUsingSelector:。不要忘記爲類別方法的名稱加上前綴,以便它不與框架中的私有方法重疊。所以,做一些像

@interface NSString (myaddition) 
-(NSComparisonResult)mySecretDiacriticsInsensitveCompare:(NSString*)string; 
@end 
+0

嘿謝謝,我做了它使用'NSString'類別。 – flohei 2010-11-03 15:30:30