quantum quantum - 5 months ago 19
iOS Question

Using NSPredicate to search an array with an array

I have an array of

Card
objects (NSObjects), each with a field called
tags
, which is an NSArray of NSStrings.

I would then like to split up the user's search term into an array called
keywords
of strings by
componentsSeparatedByString
, then use NSPredicate to filter my array of Cards based on which elements have tags containing at least 1 keyword in
keywords
.

I hope that's not too convoluted! I've tried using the NSPredicate
IN
clause to no avail. How should I do this?

Answer

Considering array contains card Object.

 NSArray *keyWordsList = [keywords componentSeparatedByString:@","];
 [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ANY %K IN %@",@"tags",keyWordsList]]

EDIT:

To search partially you can use LIKE operator.

[array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ANY %K LIKE[cd] %@",@"tags",[partialkeyWord stringByAppendingString:@"*"]]]
Comments