2012-05-24 3 views
0

Я сейчас пытаюсь фильтровать элементы, используя следующий подход:Advanced NSPredicate в Core Data (сравнение строк)

Мой управляемый объект как то:

@interface MyManagedObject:NSManagedObject 

@property (nonatomic, retain) NSString *name; 

@end 

Например, имя объекта является «компания ABCDEF GHIJKL»

Когда я поиск со строкой «BCD IJK пан» или «BCD пан», и т.д.,

(BCD подстрока ABCDEF, IJK является зиЬзЬг GHIJKL, а сковородка - подстрока компании)

он должен быть в состоянии найти объект.

Я понятия не имею, как написать предикат с этим. Я попытался использовать predicateWithBlock: но Core Data не поддерживает предикат из predicateWithBlock:

Я также попытался сначала собрать все объекты и отфильтровать результаты с помощью блока предикатов. Но это очень медленно, потому что у меня около 10M объектов в Core Data.

Так что я хотел бы спросить, могу ли я сделать это в одном предложении? Большое спасибо!!!

ответ

0

Вы можете сделать это с помощью LIKE, если вы укажете подстановочный знак *. Так что если вы найдете self LIKE %@, @"*BCD*IJK*pan*, то найдет это

+0

Thanks rdelmar !!! Ты спасаешь мою жизнь – Oscar

Смежные вопросы