【发布时间】:2016-05-31 01:44:10
【问题描述】:
我一直在努力研究如何使用 NSPredicate,但我正在努力研究如何使用“like”。
例如,假设我有一个 NSArray:
NSArray *array = [NSArray arrayWithObjects:@"Nick", @"Ben", @"Adam", @"Melissa", nil];
我不小心搜索到了“Nink”这个词而不是“Nick”。
我可以使用 NSPredicate 来返回一个包含对象“Nick”的数组吗?
这是我迄今为止尝试过的:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like[cd] %@", @"nink"];
[array filterUsingPredicate:bPredicate];
返回一个空数组。
这是 NSPredicate 能够做到的事情,还是我在这里浪费时间?
【问题讨论】:
-
澄清您的问题:您正在寻找一种方法来匹配谓词不匹配的字符串? “诺克”、“诺克”呢?
-
是的,即使搜索词是 nock 或 nonk,我也希望它返回 nick。基本上像自动更正。
-
因此,本质上,您需要一个谓词,将具有最低 Levenshtein Distance(或类似指标)的键返回到搜索词,对吗?
-
@ItaiFerber 是的,但只是在一定程度上,例如如果搜索词是 Trevor,我不想返回任何结果,因为 Trevor 与数组。
-
什么是“足够接近”?
标签: ios objective-c nspredicate