OGeek|极客世界-中国程序员成长平台

标题: ios - NSPredicate 和丹麦字母 å 给出错误的结果 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:43
标题: ios - NSPredicate 和丹麦字母 å 给出错误的结果

丹麦语只有 3 个非标准字符:åøæ

当我尝试使用以下谓词搜索我的 Core Data 实体时:

name CONTAINS[cd] "ø" // correct results
name CONTAINS[cd] "æ" // correct results
name CONTAINS[cd] "å" // wrong results - with 'å' and 'a'

前 2 个谓词正常工作,但最后一个谓词不能正常工作。结果中同时包含“å”和“a”字母。

只有这一个字母有什么特别之处?



Best Answer-推荐答案


我建议您将查询字符串设为小写并且不要使用 [cd] 作为谓词语句的一部分,这既是为了优化核心数据,也是为了返回正确的结果。

工作示例:

NSArray *ar = @[@"å",@"a",@"åa"];
NSPredicate *predicate = [NSPredicate predicateWithFormat"self CONTAINS %@", @"å"];
NSArray *filteredArray = [ar filteredArrayUsingPredicate:predicate];
NSLog(@"Results: %@",filteredArray); // which returns (å,åa)

关于ios - NSPredicate 和丹麦字母 å 给出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23496187/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4