Re: Managing relationships by fetching related objects within subclass of NSManagedObject
Re: Managing relationships by fetching related objects within subclass of NSManagedObject
- Subject: Re: Managing relationships by fetching related objects within subclass of NSManagedObject
- From: Devarshi Kulshreshtha <email@hidden>
- Date: Sun, 10 Feb 2013 08:58:33 +0530
Hi Keary,
Thnx for your reply :-)
Regarding your answer to my 2nd query, I understand that once I map the
newEmployee to company, the inverse relationship from company to employee
will be by default, no need for me to map it back. So in that case should I
do a check, say- if( aCompanyObject.employee == nil) then only map the
relationship else not?
Also can you elaborate with a simple example about how to be watchful of
fault-firing?
Thanks,
Devarshi
On Sun, Feb 10, 2013 at 12:16 AM, Keary Suska <email@hidden>wrote:
>
> On Feb 9, 2013, at 10:20 AM, Devarshi Kulshreshtha wrote:
>
> > Say I have an employee entity and a company entity in core data.
> >
> > So employee and company are related to each other like this:
> >
> > Employee <<---> Company
> >
> > Now I am trying to right a manageRelationships method in each class,
> > something like this:
> >
> > @interface Employee : NSManagedObject
> > - (void)manageRelationships;
> > @property (nonatomic, retain) Company *company; // for relationship
> > @property (nonatomic, retain) NSNumber *companyId; // acts as foreign
> > key
> > @end
> >
> > @implementation Employee
> > @dynamic company;
> > @dynamic companyId;
> > - (void)manageRelationships
> > {
> > // prepare a predicate as @"companyId == %@",self.companyId
> >
> > // execute a fetch request against Company entity
> >
> > // map relationship using self.company = retrievedCompanyObject
> > }
> >
> > Now I have few questions:
> >
> > 1. Is it safe to fire fetch request and map a relationship, as
> implemented
> > above, within a subclass of NSManagedObject?
>
> Possibly, though you have to be watchful of fault-firing.
>
> > 2. Is their any better way to achieve it? (Idea behind above approach
> is- I
> > will be calling above method on each created managed object so that it
> > automatically manages and maps all associated relationships)
>
> Well, Core Data manages modeled relationships for you given a minimal
> relationship. For instance, when creating a new Employee, simply setting
> newEmployee.companyRelationship = companyObject will establish also the
> to-many side of the relationship as long as both are modeled. You can also
> do the reverse, inserting the Employee object into the Company to-many
> relationship collection (in a KVO-compliant way). Note that this is all
> fully and well documented in the Core Data docs.
>
> HTH,
>
> Keary Suska
> Esoteritech, Inc.
> "Demystifying technology for your home or business"
>
>
--
Thanks,
Devarshi
_______________________________________________
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