Search code examples
iosnsarraynsdictionarynspredicate

Searching NSArray of NSDictionary objects


I've contacts array where each contact is a dictionary.

Each contact has a key "contact_type" which is an NSNumber. Contact type basically represents whether its a Facebook, LinkedIn or Mail contact etc. I've a search array which holds only NSNumber of contact_type's.

What I want is to make a temporary array of contacts which I want to search using my search array.

I am facing trouble using NSPredicate to create searched contacts array. Can some one guide me on how to do it?


Solution

  • NSArray *contacts = ...; //your array of NSDictionary objects
    NSPredicate *filter = [NSPredicate predicateWithFormat:@"contact_type = 42"];
    
    NSArray *filteredContacts = [contacts filteredArrayUsingPredicate:filter];
    

    After this, filteredContacts will contain only the contacts whose contact_type is 42.

    If you need to search for more than one kind of contact_type, then simply use an OR in the predicate:

    filter = [NSPredicate predicateWithFormat:@"contact_type = 42 OR contact_type = 23"];