В моем приложении я разрешаю пользователям искать автомобили по марке/модели, используя поиск по ключевым словам в текстовом поле. Вот мой предикат:NSPredicate - Возврат неточных совпадений
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];
}
Проблема заключается в том, что если Vehicle марка/модель «Ford F150» и пользователь ищет F150 или F 150, транспортное средство не включены в результаты. Он возвращается только при поиске F-150 или f-150.
Есть ли способ убедиться, что эти неточные соответствия возвращаются?
конечно есть - но вы должны понять, как неточно результат должен быть - если поиск 'F150' будет что-то вроде' ... Fast 1 Big 5 Lalala 0 ... 'также совпадать? Каково ваше * правило *, чтобы указать, насколько неточным может быть совпадение? – luk2302
@ luk2302 ok, скажем, я просто хотел разрешить вышеупомянутый случай. поэтому, дефис (f-150) слова ... пользователь может либо не включать дефис (f150), либо разместить пробел вместо дефиса (f 150) ... как бы этот предикат выглядел? –