我的coredata模型中有两个表(有更多,但保持示例简单)员工和部门。员工属于部门,部门包含许多员工。以下是表格定义:
Employee
================
employeeID int32
firstName string
lastName string
departmentID int32
Department
================
departmentID int32
departmentName string
我只是想知道检索所有员工及其部门名称的最简洁方法是什么?
由于
答案 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,请相应地更改代码。