【发布时间】:2015-10-30 18:53:23
【问题描述】:
在我的应用中,我允许用户使用文本字段关键字搜索按品牌/型号搜索车辆。这是我的谓词:
if (self.keywordSearch.text.length > 0) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"fields.make CONTAINS[cd] %@ OR fields.model CONTAINS[cd] %@", self.keywordSearch.text, self.keywordSearch.text];
self.vehicleArray = [[self.vehicleArray filteredArrayUsingPredicate:predicate] mutableCopy];
}
问题在于,如果车辆品牌/型号是“福特 F-150”并且用户搜索 F150 或 F 150,则该车辆不包含在结果中。只有当他们搜索 F-150 或 f-150 时才会返回。
有没有办法确保返回这些不精确的匹配项?
【问题讨论】:
-
当然有——但你必须清楚结果应该有多不精确——如果搜索是
F150,类似... Fast 1 Big 5 Lalala 0 ...的内容也会匹配吗?你有什么规则来指定匹配的不精确程度? -
@luk2302 好吧,假设我只是想允许上述情况。所以,带连字符的 (f-150) 词...用户可以不包括连字符 (f150) 或放置一个空格而不是连字符 (f 150) ...该谓词看起来如何?
标签: ios objective-c nspredicate