@PKochubey

[Core Data] NSPredicate + LIKE — почему в консоли постоянно 0?

Делаю запрос из консоли к базе sqlite:
SELECT * FROM book WHERE title LIKE '%новые%';
в ответ на запрос получаю вполне ожидаемую выдачу.
Пытаюсь задать тоже самое в iOS через NSPredicate:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"title LIKE '%%%@%%'", [textSearch text]]];
        
[fetchRequest setEntity:[NSEntityDescription entityForName:@"book" inManagedObjectContext:app.managedObjectContext]];
[fetchRequest setReturnsDistinctResults:YES];
[fetchRequest setPredicate:predicate];

NSArray *finding = [app.managedObjectContext executeFetchRequest:fetchRequest error:nil];
NSLog(@"%i", [finding count]);

В консоли постоянно получаю 0. Я делал и без NSString stringWithFormat, %% и даже кавычек, так как показано в документации, но все равно ничего не получаю. Если не применять NSPredicate, то выбираются соответственно все записи.
  • Вопрос задан
  • 2507 просмотров
Решения вопроса 1
morozovdenis
@morozovdenis
https://developer.apple.com/library/ios/documentat...


LIKE
The left hand expression equals the right-hand expression: ? and * are allowed as wildcard characters, where ? matches 1 character and * matches 0 or more characters.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы