I\'m creating an app and trying to use core data, because it seems like it\'s the objective-C approved way to create a data storage system. The use case I have involves \"ma
Let's say you have two entities in your database, employees and managers. They would look something like this in the code:
@interface Employee : NSManagedObject
{
}
@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSSet* managers;
@interface Manager : NSManagedObject
{
}
@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSSet* employees;
So let's say you wanted to retrieve all the employees for manager number 1, you would just have to get the manager object from the database:
NSNumber *managerID = [NSNumber numberWithInt:1];
NSEntityDescription * entityDescription = [NSEntityDescription entityForName:@"Manager" inManagedObjectContext:managedObjectContext];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %d", @"id", managerID];
[request setPredicate:predicate];
NSArray *array = [managedObjectContext executeFetchRequest:request error:&error];
Manager *manager = [array objectAtIndex:0];
and then you would have all its employees in the employees property:
NSSet *allHisEmployees = manager.employees;
It would be exactly the same to retrieve the managers for a given employee.
I hope it clears things up