2012-08-09 57 views
0

我的Iphone App中有一個sqlite數據庫。我有一個表名,需要在tableView中使用sectionIndexTitlesForTableView時進行排序。Sqlite:用特殊字符排序danishæø

sql語句是「SELECT * FROM buildings ORDER BY name ASC」。這給出了排序的結果,但不知何故排序失敗的特殊字符 - 丹麥æøå。 像:

  • 奧胡斯Universitet
  • 奧胡斯埃
  • OER海上Ferieby

埃應該來Ø後。

我曾試着在COLLATE上讀過,但在這裏做什麼時感覺非常無知。請注意,sqlite似乎工作正常 - 使用UTF8編碼,萬物在應用程序中看起來很好。除了字母順序。

任何線索? -

回答

0

因爲我只需要在sectionForSectionIndexTitle使用的陣列正確排序表視圖的數據源我做繞過SQLite中的排序問題:


NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"da_DK"]; sections = [sections sortedArrayUsingComparator:^(NSDictionary *first, NSDictionary *second) { NSString *str1 = [first objectForKey:@"section"]; NSString *str2 = [second objectForKey:@"section"];

return [str1 compare:str2 
        options:0 
        range:NSMakeRange(0, [str1 length]) 
        locale:locale]; 

}];
我認爲其確定要做到這一點,因爲數部分數組中的條目數不會超過字母表中的字符數。