可可 iphone 核心数据谓词一对多 fetchrequest

Posted

技术标签:

【中文标题】可可 iphone 核心数据谓词一对多 fetchrequest【英文标题】:cocoa iphone core-data predicate one-to-many fetchrequest 【发布时间】:2010-01-14 22:53:49 【问题描述】:

我有一组数据,其中一个属性(固件)是一对多关系。

如果我想获取固件 ID 为 1 的任何记录,我可以使用创建谓词

@"(ANY Firmware.FID==1)"

然后我有另一组条件,将进一步细化该组使用

(TopLevel==YES) AND (Parent>0)

如何将它们组合或设置,以便首先过滤固件,然后过滤第二个条件?最终我想要 Firmware.FID=1 和 TopLevel==YES 和 Parent>0 的所有记录。

谢谢, 豪伊

【问题讨论】:

【参考方案1】:

你应该可以使用这个谓词:

[NSPredicate predicateWithFormat:@"TopLevel == %@ AND Parent > %@ AND ANY Firmware.FID == %@",[NSNumber numberWithBool:YES],[NSNumber numberWithInteger:0],[NSNumber numberWithInteger:1]];  

我最后将“ANY Firmware.FID”上的条件移到了最后,因为它是最复杂的,如果其他条件之一已经失败,则可以避免。

【讨论】:

以上是关于可可 iphone 核心数据谓词一对多 fetchrequest的主要内容,如果未能解决你的问题,请参考以下文章

具有一对多关系的复杂核心数据谓词

在具有多对一/一对多关系的核心数据中构造谓词

与包含的一对多关系的核心数据谓词

iPhone核心数据得到孙子

iphone核心数据:无法删除具有一对多关系的数据

不搜索一对多核心数据关系