How do I query/filter a to-many relationship in Core Data
- by Kris Bixler
I have Customer, Event and Address objects in my data model. Both Customer and Address have a one-to-many relationship to Event.
I can get the distinct list of addresses for a customer's events for by doing this:
NSSet *addressSet = [customer valueForKeyPath:@"events.address"];
For the part of the UI I'm working on now, I need to display the address from the most recent event prior to now that has an address.
I'm starting to go down the path of creating a NSFetchRequest, setting it's entity, sort descriptors, predicate and then looping through the results, but it seems like a lot of code. Am I missing some obvious way of filtering/sorting on the "events" relationship of the Customer object or is creating the NSFetchRequest the best solution?