You could potentially copy all the data from the address book into a Core Data store and use predicates to work with that data. Predicates tend to be very useful when building complex queries.
Predicate Programming Guide
In this case you would have to get all contacts ([[AddressBook sharedAddressBook] people]
) and also have a Core Data entity called Contact
(or something similar) that would save names, emails, addresses and other properties from the ABPerson
object.
Having this you can probably create an NSPredicate
to filter with the conditions you want.