当字段包含'(单引号)字符时搜索核心数据

时间:2010-08-06 11:38:50

标签: iphone search core-data special-characters

请帮助,因为我觉得我疯了。

我有一个包含数千条记录的核心数据集合。 这些记录中的某些字段包含具有单个字符的术语 引用。从XML构建数据库时,我们创建了两个字段 - a NAME字段和SORTFIELD字段。

NAME字段包含完整术语,用于显示目的 在我们的申请中。

SORTFIELD字段包含与NAME字段相同的内容,但是 转换为小写并删除所有单引号字符 使用以下内容。

[NSString stringByReplacingOccurrencesOfString:@"'" withString:@""]; 

当用户输入他们想要搜索的字符串时,我们 从输入的搜索字符串中删除单引号并转换为 使用与创建数据时相同的方法使用小写。不过它 没有找到任何结果。

如果用户输入Michael's,则系统无法找到任何记录

谓词为"SORTFIELD like 'michaels'"

如果用户输入Michael'(单引号's'字符),则 系统找到所有记录开始迈克尔的

谓词为"SORTFIELD like 'michael'"

我确信我们正在做一些非常愚蠢的事情并且欣赏任何事情 关于如何解决这个问题的指针,因为我们已经四处走动 在圈子里。

我们已经放置了许多NSLog条目来跟踪实际的内容 搜索字段和记录字段,并按预期显示所有内容。

由于 麦克

1 个答案:

答案 0 :(得分:0)

我终于解决了找到被搜索字段的问题 当单引号存在时,它具有不可显示的字符。对于 示例迈克尔的展示,但Michaelx的x =扩展的ascii 性格,是实际的内容。

通过从字段中删除它,我们能够执行搜索 正如我们的原始帖子所述。

但是,我仍然觉得您应该能够在Core Data集合中搜索包含单引号的字符串,而不必执行所描述的“hack”。

欢迎其他人对此提出任何想法。

由于 迈克