2011-06-26 40 views
5

我正在使用localizedStandardCompare:排序數組,這使我按正確的本地化順序排序的對象。現在我想在index中使用UITableView,這意味着我需要生成節標題。由於localizedStandardCompare:對它們進行本地化,因此以「Æ」開頭的字符串將用A對象排序。得到由localizedStandardCompare進行比較時使用的字符串

所以,如果我迭代數組,併爲每個第一個字母做一個部分,我會得到部分「A」,「Æ」,「A」,「B」等。有沒有辦法獲得字符串這是用來比較,還是至少仿效它?我試過用不同的編碼進行轉換,但沒有人會爲「Æ」返回一個「A」。

有關如何爲本地化字符串生成節標題的其他建議?

+2

我不知道如何實現這一點,但你簽出'UILocalizedIndexedCollat​​ion'?鏈接:http://developer.apple.com/library/ios/#documentation/iPhone/Reference/UILocalizedIndexedCollat​​ion_Class/UILocalizedIndexedCollat​​ion.html –

+0

謝謝!我以前從來沒有注意過這個課,它看起來就是我需要的。 –

+3

如果這種方式適合您,請將其作爲回答發佈並將其標記爲已接受,以便此問題不會出現未解答,並且其他具有相同問題的人可以更輕鬆地找到解決方案。 – Greg

回答

0

您可以使用CFStringTransform方法來獲取使用的字符串。

例如,使用kCFStringTransformToLatin值從輸入字符串中獲取簡單的拉丁字符串。

這實際上不會像localizedStandardCompare:方法那樣運行,但是您可以使用字符串轉換爲您用於實際排序的對象生成附加屬性。

有很多很好的資源,這個話題: