Странное поведение NSPredicate, - PullRequest
0 голосов
/ 14 марта 2012

Почему этот предикат возвращает результаты:

predicate= [NSPredicate predicateWithFormat:@"itemsString like '*{4160366}*'"];

пока этот предикат возвращает пустой массив

predicate= [NSPredicate predicateWithFormat:@"itemsString like '*{%@}*'",[NSString stringWithString:@"4160366"]];

Я сводил меня с ума

1 Ответ

1 голос
/ 14 марта 2012

При построении предиката ПредикатWithFormat автоматически добавляет кавычки при выполнении подстановки переменных.Таким образом, ваш (второй) предикат в итоге будет выглядеть так:

itemsString like '*{"4160366"}*'".

Обратите внимание на дополнительный набор цитат.

Измените его на:

predicate= [NSPredicate predicateWithFormat:@"itemsString like %@",[NSString stringWithFormat:@"*{%@}*", @"4160366"]];

, и оно должно работать.

(Обратите внимание, что вместо использования stringWithString я просто использовал @"", что делает то же самое.)

...