ios - NSPredicate 和丹麦字母 å 给出了错误的结果

标签 ios iphone objective-c core-data nspredicate

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

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

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

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

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

最佳答案

我建议您将查询字符串设置为小写,并且不要使用 [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/

相关文章:

ios - 带圆角的 Spritekit 线

ios - ARKit 2 卡住 : a bug or my misfortune?

iphone - 无法将 UITableViewCell didSelectRowAtIndexPath 数据传递给另一个 View Controller

ios - Xcode 与模拟器 iOS 9 失去连接

iPhone应用程序使用.NET开发环境?

ios - 在 SceneKit 中将极高的分辨率映射到球体

ios - 如何将视频剪辑保存到照片库-iOS 8和9

iphone - 如何从条形码获取食品数据

objective-c - 将 NSNumberFormatter 连接到 NSTextfield

ios - UML 类图中的 Objective C block