Я пытаюсь построить запрос хранилища основных данных, который извлекает значения атрибута объекта, когда они встречаются в более длинной строке;Написание NSPredicate для текстового запроса 'CONTAINED_BY'
т.е. вместо того, чтобы искать случаи, когда значение атрибута содержит а (короче) строку:
request.predicate = [NSPredicate predicateWithFormat:@"carBrand contains[c] 'merced'"]
Я хочу найти примеры (из сущности), значения атрибута найдены «содержащиеся в» произвольное (больше) строка:
NSString* textString = @"Elaine used to drive Audis, but now owns a Mercedes";
request.predicate = [NSPredicate predicateWithFormat:@"%@ contains[c] carBrand", textString ];
(т.е. получить массив, содержащий объекты с carBrand = @ "Ауди" и carBran. d = @ «Мерседес»)
В своих попытках, NSPredicate, кажется, не любит выражение с именем атрибута на правой стороне и выдает ошибку ...
[__NSCFConstantString countByEnumeratingWithState: объекты : кол-во:]: непризнанным селектор послал к экземпляру 0x
... есть способ построения такого запроса с именем атрибута на левой стороне - это «contained_by» запроса, как это мы?
PS. Поиск SO, я нашел только solutions by splitting the text into component words, который, по моему сценарию, был бы менее идеальным! Является ли это единственным типом подхода, который является жизнеспособным?
В моем примере я хочу найти *, который из многих автомобилей в моем db имеет .carBrand, которые соответствуют некоторой части строки. Разве ваш запрос не просто подтверждает, что Audi | Mercedes находится в строке? – cate
Да, этот пример просто возвращает исходные строки, которые содержат либо Audi, либо Mercedes, не изменяя их. –
Вопрос, отредактированный, чтобы уточнить, что желаемый результат - это * массив сущностей *, чье значение * атрибута * соответствует некоторой подстроке строки произвольного динамического поиска. – cate