Re: Core Data can't do Distinct Relationships to Same Entity
Re: Core Data can't do Distinct Relationships to Same Entity
- Subject: Re: Core Data can't do Distinct Relationships to Same Entity
- From: Roland King <email@hidden>
- Date: Wed, 23 Jun 2010 10:49:54 +0800
Why don't you have a property 'arms' which is a to-many property? If you
want to find a specific arm from the body you can iterate the arms
looking for the one you want, or in the generic case use a predicate to
find it for you. That also scales well when you put Hindu Gods (or
Venusians) into your model as they potentially have lots and lots of arms.
Nothing stops you hiding the details of this with a -(Arm*)leftArm and
-(Arm*)rightArm method in your body class which just goes and hunts or
predicates the arms property to find the one you want.
Jerry Krinock wrote:
Say that I'm modelling a human body. Each body has two arms, and I model them with the same entity; one has, maybe, setFlipped:YES and the other has setFlipped:NO. But they are accessed for different purposes; sometimes I want the left arm and sometimes the right arm. I'd therefore like to set up relationships thus:
Body_Entity Arm_Entity
leftArm <----> body
rightArm <----> body
But Core Data won't let me do this, because the Arm's 'body' relationship can only have one inverse relationship. Instead, I must do this:
Body_Entity Arm_Entity
leftArm <----> bodyLeft
rightArm <----> bodyBody
which looks kind of silly, and also in order to access 'body' from an Arm object I need a silly accessor:
- (Body*)body {
Body* body = [self bodyLeft] ;
if (!body) {
body = [self bodyRight] ;
}
return body ;
}
Is there a better way to model such a thing?
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden