Привет, проблема выглядит так:
У меня есть в CoreData сущности, которые имеют заголовок и связь с ключевыми словами сущностей.
Мне нужен предикат, который поможет мне выбрать все те сущности, название которых содержит ключевые слова, которые я печатаю. У меня есть код ниже, который должен сделать это, но это не так:
NSArray *keywords = [searchString componentsSeparatedByString:@" "];
NSString *predicateString = @"";
for(NSInteger i = 0; i < [keywords count]; i++) {
if(((NSString*)[keywords objectAtIndex:i]).length != 0) {
if(i==0) {
predicateString = [keywords objectAtIndex:i];
}
else {
predicateString = [predicateString stringByAppendingFormat:@" and keywords.normalizedKeyword contains[cd] %@", [keywords objectAtIndex:i]];
}
}
}
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"keywords.normalizedKeyword contains[cd] %@",predicateString];
Например, у меня есть объекты с такими названиями:
1) "Великая тема раскраски"
2) «Тема для детей»
3) "Автомобили для детей"
БД моих ключевых слов будет содержать:
большой
раскраска
тема
за
Дети
автомобили
Как я могу создать предикат, когда я набираю, например:
Тема для
результат будет 2) и 3)
или если я наберу:
отличная тема
результат будет 1) и 2)
Любая помощь в получении правильного предиката для достижения этой цели очень ценится. То, что я пытался сделать там, не работает, и у меня нет идей.
Спасибо!