我在这里遇到了很多关于 SO(比如这个)的问题,但我仍然需要一些帮助。
我需要我的 sqlite 选择按斯洛文尼亚字母排序(字母 č 在 c 之后,字母 š 在 s 之后,字母 ž 在 z 之后)。
这是我使用的代码:
static int sqlite3SloCollate(void * foo, int ll, const void *l, int rl,
const void *r){
NSString *left = [NSString stringWithCharacters:l length:ll];
NSString *right = [NSString stringWithCharacters:r length:rl];
//THIS IS WHERE I DON'T KNOW HOW TO COMPARE CHARACTERS
NSComparisonResult rs = [left compare:right options:NSForcedOrderingSearch];
return rs;
}
sqlite3_create_collation(database, "SLOCOLLATE", SQLITE_UTF8, NULL, &sqlite3SloCollate);
querySQL = [NSString stringWithFormat: @"SELECT s.id FROM lyrics l INNER JOIN song s ON (l.idSong=s.id) WHERE content LIKE '%%%@%%' GROUP BY s.id ORDER BY s.title COLLATE SLOCOLLATE;",searchString];
我应该使用哪种 NSOrdering 类型?还是我必须编写自己的比较函数(你能给我一个例子)?