如何在核心数据中获取实体OF实体?

时间:2013-12-26 20:44:39

标签: ios objective-c core-data

我的数据模型设置如下:

Entity 1>> (一对多)>> Entity 2>> (一对多)>> Entity 3

现在在我的一个视图控制器中,我有一个Entity 2*属性,它是一个对象。如何访问Entity 3的特定实例的Entity 2?我尝试过使用:

fetchRequestWithEntityName:,但我不希望转储Entity 3中的每一个,只有属于Entity 3实例的所有Entity 2

非常感谢您的帮助!

〜Carpetfizz

1 个答案:

答案 0 :(得分:1)

您可以简单地使用这种关系:

Entity2 *e2 = ... // Your Entity2 object
NSSet *e3s = e2.entity3s;
// or:
NSArray *e3s = [e2.entity3s allObjects];

假设从Entity2Entity3的多对多关系称为“entity3s”。

如果您需要获取请求(例如,对于获取的结果控制器),那么 你只需要添加一个谓词:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entity3"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"entity2 = %@", e2];
[request setPredicate:predicate];

假设从Entity3Entity2的逆一对一关系 被称为“entity2”。