0

Iphone アプリに sqlite データベースがあります。tableView で sectionIndexTitlesForTableView を使用するときに並べ替えが必要な名前のテーブルがあります。

SQL ステートメントは " SELECT * FROM buildings ORDER BY name ASC" です。これによりソートされた結果が得られますが、どういうわけか特殊文字 (デンマーク語の æ ø å) でソートが失敗します。お気に入り:

  • オーフス大学
  • オーフス Å
  • Øer Maritime Ferieby

Å は Ø の後に来る必要があります。

私は COLLATE を読んでみましたが、ここで何をすべきかについてはかなり無知だと感じています. sqlite は正常に動作しているように見えることに注意してください - UTF8 エンコーディングを使用すると、アプリですべてが正常に表示されます。アルファベット順以外。

手がかりはありますか?

4

1 に答える 1

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];

}];
セクション配列のエントリ数がアルファベットの文字数を超えないため、これで問題ないと思います。

于 2012-08-16T13:36:40.020 に答える