ios - Coredata predicate IN operator with like or contain -


i have 2 arrays on have wildcard search , using in operator in operator gives me exact matching want fetch results contains searchterm. possible through in operator or have manually loop through records , match pick record want.

current code :

        nsarray *filteredarray = [brandsfabric filteredarrayusingpredicate:[nspredicate predicatewithformat:@"self.color_name in  %@ or self.subcategory_name in %@",colornamesarray,patternnamesarray]]; 

desired functionality this:

        nsarray *filteredarray = [brandsfabric filteredarrayusingpredicate:[nspredicate predicatewithformat:@"self.color_name in like/contains %@ or self.subcategory_name in like/contains %@",colornamesarray,patternnamesarray]]; 

this expensive operation, can try:

nsmutablearray *predicates = [nsmutablearray array]; (nsstring *name in colornames) {    [predicates addobject:[nspredicate predicatewithformat:        @"color_name contains[cd] %@", name]]; } (nsstring *name in subcategorynames) {    [predicates addobject:[nspredicate predicatewithformat:        @"subcategory_name contains[cd] %@", name]]; } nspredicate *final = [nscompoundpredicate orpredicatewithsubpredicates:predicates]; 

maybe subquery in order here. (experimental)

[nspredicate predicatewithformat:   @"((subquery(%@, $x, color_name contains[cd] $x).@count != 0) or "   @"((subquery(%@, $x, category_name contains[cd] $x).@count != 0)",    colornames, categorynames]; 

Comments

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -