在Core Data实体中,如何在其fetched属性的谓词中使用源实体的属性?

时间:2011-03-09 15:02:48

标签: iphone core-data fetch predicate

我正在使用可视化编辑器来创建Core Data模型。我无法弄清楚如何设置一个fetched属性的谓词,以便它在谓词中使用源实体的属性。

例如,我EntityA的属性为searchId。我还有EntityB,其属性为id。我想要做的是找到EntityB id等于EntityA searchId属的EntityB个实例。当我尝试编辑谓词时,左侧和右侧的下拉列表仅包含目标的键,在本例中为EntityA,并且无法选择任何键来自{{1}}。

我知道您可以通过编程方式创建谓词,但我想知道是否有办法使用可视化编辑器。

1 个答案:

答案 0 :(得分:6)

这有点痛苦。

首先,在谓词编辑器控件中,单击谓词最后一个字段右侧的空白区域,然后选择“variable”。然后在字段中输入“FETCH_SOURCE.attributeName”。

FETCH_SOURCE(或代码中的$ FETCH_SOURCE)是一个特殊变量,它指示发起fetched属性获取的对象。还有FETCHED_PROPERTY($ FETCHED_PROPERTY),它将返回实际的NSFetchedPropertyDescription对象。

因此,您的谓词在文本中看起来像:

id==$FETCH_SOURCE.searchId

Apple显然对此功能并不感到自豪,因为他们在Cupertino神话般的地下墓穴深处埋葬了任何参考资料。我花了四天时间才第一次搞清楚。