xcode iOS Core Data简单的关系数据检索

时间:2012-08-27 04:18:32

标签: iphone ios xcode ipad core-data

我的coredata模型中有两个表(有更多,但保持示例简单)员工和部门。员工属于部门,部门包含许多员工。以下是表格定义:

Employee
================
employeeID int32
firstName string
lastName string
departmentID int32

Department
================
departmentID int32
departmentName string

我只是想知道检索所有员工及其部门名称的最简洁方法是什么?

由于

1 个答案:

答案 0 :(得分:1)

您似乎正在设计您的架构,就像它是一个数据库一样。请不要这样做。它与CoreData的工作方式没有必要和对立。你应该摆脱你的ID字段。只需在模型中声明适当的关系,然后您需要做的就是获得员工的部门:

myEmployee.departmentName

获取所有员工就是这样:

NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription
    entityForName:@"Employee" inManagedObjectContext:moc];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
    initWithKey:@"firstName" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];

NSError *error = nil;
NSArray *array = [moc executeFetchRequest:request error:&error];
if (array == nil)
{
    // Deal with error...
}

这是从文档中获取的。如果您使用的是ARC,请相应地更改代码。