我们的目标是为SQLite数据库编写不区分大小写的排序规则。我们为多个平台做了这个,但iOS似乎有一致的问题(偶尔)在损坏的DB索引中出现。经过长时间的实验,我们得出结论,罪魁祸首是CFStringCompare()函数,这违反了理论规则。
度Acc。理论上,比较函数必须是反身的,对称的和传递的。
我们所做的是生成随机字符串并测试CFStringCompare()是否满足上述属性。
以下是一个示例问题: CFStringCompare与标志NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch产生:
"Я7;1FC9" > "SДA`\"0l"
"SДA`\"0l" > "Я7;1FC9"
换句话说,当B> A!
时,A> B;我们测试了更多旗帜组合:
有没有人知道在iOS下实现不区分大小写的比较的安全方法?