Core data cross referencing two relationships
I have a data structure in Core Data like so...

User

Item

Category

User has a toMany relationship "FavouriteItems" to the Item entity.
Category also has a toMany relationship "Items" to the Item entity.

The user can select favourite items from any categories they wish.  At the moment I am listing all the items and then displaying the Category alongside.

What I'd like to do is display all the user's favouriteItems for a selected Category.

i.e. select all the Items that have a relationship with Category x and User y.

I'm currently doing this by getting all the Items through one relationship (i.e. User.favouriteItems) and then filtering the NSSet using a block predicate.

Is it possible though to do this with a simple CoreData predicate?

Hmm... thinking about it would a predicate like this work...

    [NSPredicate predicateWithFormat:@"interestedUser.id = %@ AND category.id = %@", user.id, category.id];

And then run a fetch request on the item entity?

Would that work?
Core data cross referencing two relationships
===

I have a data structure in Core Data like so...

User

Item

Category

User has a toMany relationship "FavouriteItems" to the Item entity.
Category also has a toMany relationship "Items" to the Item entity.

The user can select favourite items from any categories they wish.  At the moment I am listing all the items and then displaying the Category alongside.

What I'd like to do is display all the user's favouriteItems for a selected Category.

i.e. select all the Items that have a relationship with Category x and User y.

I'm currently doing this by getting all the Items through one relationship (i.e. User.favouriteItems) and then filtering the NSSet using a block predicate.

Is it possible though to do this with a simple CoreData predicate?

Hmm... thinking about it would a predicate like this work...

    [NSPredicate predicateWithFormat:@"interestedUser.id = %@ AND category.id = %@", user.id, category.id];

And then run a fetch request on the item entity?

Would that work?