丹麦语只有3个非标准字符:å
,ø
和æ
。
当我尝试使用以下谓词搜索我的Core Data
实体时:
name CONTAINS[cd] "ø" // correct results
name CONTAINS[cd] "æ" // correct results
name CONTAINS[cd] "å" // wrong results - with 'å' and 'a'
前2个谓词正常但不是最后一个。它的结果是“å”和“a”字母。
这封一封信的特别之处是什么?
答案 0 :(得分:1)
我建议你将查询字符串设置为小写,不要将[cd]用作谓词语句的一部分,既可以用于核心数据优化,也可以返回正确的结果。
工作示例:
NSArray *ar = @[@"å",@"a",@"åa"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self CONTAINS %@", @"å"];
NSArray *filteredArray = [ar filteredArrayUsingPredicate:predicate];
NSLog(@"Results: %@",filteredArray); // which returns (å,åa)
答案 1 :(得分:0)
这是变音符号搜索的正确行为。如果指定“ d”参数,则核心数据将运行变音符号不敏感搜索。这意味着它将忽略所有重音。
该字符是“特殊”字符,因为它具有多种unicode表示形式,并且您的搜索还将根据存储在商店中的unicode值产生不同的结果。
上的字符串问题中有关于该字符的很好的解释