views:

190

answers:

1

Hi guys,

I've got the scenario with two NSManagedObjects, Arm and Person. Between them is a many-to-one relationship Person.arms and inverse Arm.owner.

I'd like to write a simple NSPredicate where I've got the NSManagedObject *arm and I'd like to fetch the NSManagedObject *person that this arm belongs to. I could make a textual representation and look for that, but is there a better way where I can look it up by identity? Something like this perhaps?

NSEntityDescription *person = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:MOC];
NSPredicate *personPredicate = [NSPredicate predicateWithFormat:@"%@ IN arms", arm];

Cheers

Nik

+1  A: 

I've got the scenario with two NSManagedObjects, Arm and Person. Between them is a many-to-one relationship Person.arms and inverse Arm.owner.

I'd like to write a simple NSPredicate where I've got the NSManagedObject *arm and I'd like to fetch the NSManagedObject *person that this arm belongs to.

That would be myArm.owner. No predicate needed; this is what the inverse relationship is for.

Peter Hosey
You are, of course, correct, this is the usual way of going about it. However, I want to reuse a view I have that is using an NSFetchedResultsController, and the arm would be a filter on the NSFetchRequest. Or is there a better way of using this inverse relationship to populate a NSFetchedResultsController?
niklassaers