我正在使用可视化编辑器来创建Core Data模型。我无法弄清楚如何设置一个fetched属性的谓词,以便它在谓词中使用源实体的属性。
例如,我EntityA
的属性为searchId
。我还有EntityB
,其属性为id
。我想要做的是找到EntityB
id
等于EntityA
searchId
属的EntityB
个实例。当我尝试编辑谓词时,左侧和右侧的下拉列表仅包含目标的键,在本例中为EntityA
,并且无法选择任何键来自{{1}}。
我知道您可以通过编程方式创建谓词,但我想知道是否有办法使用可视化编辑器。
答案 0 :(得分:6)
这有点痛苦。
首先,在谓词编辑器控件中,单击谓词最后一个字段右侧的空白区域,然后选择“variable
”。然后在字段中输入“FETCH_SOURCE.attributeName
”。
FETCH_SOURCE(或代码中的$ FETCH_SOURCE)是一个特殊变量,它指示发起fetched属性获取的对象。还有FETCHED_PROPERTY($ FETCHED_PROPERTY),它将返回实际的NSFetchedPropertyDescription对象。
因此,您的谓词在文本中看起来像:
id==$FETCH_SOURCE.searchId
Apple显然对此功能并不感到自豪,因为他们在Cupertino神话般的地下墓穴深处埋葬了任何参考资料。我花了四天时间才第一次搞清楚。