我有3个实体:Person,Region和Boundary . 边界具有“状态”属性 . 一个人可以有很多地区 . 一个地区可以有很多边界:
Person <<-->> Region <<-->> Boundary.state
对于Person实体,我想找出他有边界的所有状态 . 谓词可以进行这种搜索还是我需要进行嵌套搜索:
NSMutableArray *states = [NSMutableArray array];
for (Region *region in person.regions) {
for (Boundary *boundary in region.boundaries) {
// add state to array
}
}
编辑:
对不起,我不是一个数据库人,并且没想到它意识到它们是多对多的关系:
Person<<-->>Region<<-->>Boundary
2 回答
谓词中的“ANY”集合运算符不适用于嵌套的多对多关系 . 你可以在这里使用SUBQUERY:
要获得
Person
所拥有的所有Boundary
实体,您可以像这样使用NSFetchRequest
......这将返回
Boundary
实体的数组,其中Person
是您放在谓词中的实体 .然后你可以......
然后状态将是人“拥有”的一组独特状态 .
随着这么多的变化 .
你可以为谓词做一些事情......
......我觉得这可行吗?