核心数据:查询与另一个有关系的对象

时间:2014-03-31 21:58:04

标签: ios core-data

假设我有3个核心数据实体:患者,治疗,事件,患者可以拥有许多事件对象,而这些对象又有一个治疗对象。

所以,这段代码是有效的:

NSSet *events = patient.events;
NSSet *events = therapeut.events;
Therapeut *therapeut = event.therapeut;
Patient *patient = event.patient

现在,我希望检索给定患者和给定治疗的所有事件。这是否可能没有对数据库执行获取请求?我发现往返是昂贵的,我已经掌握了给定的治疗和给定的患者。

这可能吗?

1 个答案:

答案 0 :(得分:0)

如果它们具有反向多个属性,则可以遍历patient.events并检查事件是否具有给定的治疗

NSMutableArray *matches = [NSMutableArray array];
for(Event *event in patient.events) {
    if(event.therapeut == my_therapeut)
        [matches addObject event];
}

这仍然涉及对所有患者事件的迭代,但它比新的提取更有效

如果您只有治疗标识符,可以使用:

[event.therapeaut.identifier isEqual:<identifier> ];