如何从Core Data中的关系字段中获取ID而不是实体对象?

时间:2012-08-23 10:34:42

标签: ios core-data

我想从当前实体的字段中获取相关实体的ID。我怎么能这样做?

例如,假设我有两个实体类。 CompanyEmployeeCompany已设置Employee。使用Core Data,我会这样做,以便从公司获得。

TTCompany* company = <get company>
TTEmployee* employee = [[company employees] anyObject];
id employeeID = employee.objectID;

我想得到的只是employeeID。我现在不需要加载员工对象,因为如果需要我将在以后解决它们。显然,当前的公司对象具有员工的ID。我认为有一种方法可以在不获取任何数据的情况下获得此信息。

有没有更好的方法来获取ID而不加载对象?

1 个答案:

答案 0 :(得分:0)

如果他们有关系,而不是从公司转到员工,您可以在拥有给定公司的员工上构建获取请求。 然后在执行之前设置返回结果类型为NSManagedObjectID。

我在没有测试的情况下编写了这个,并且有点冗长以使概念更清晰。

NSFetchRequest *myFetchRequest =[[NSFetchRequest alloc] init];
myFetchRequest.entity=<your employee description>;
myFetchRequest.predicate=[NSPredicate predicateWithFormat:@"(company==%@)",yourCompany];
myFetchRequest.setResultType=NSManagedObjectIDResultType;

// execute fetch and the rest....