我遇到了一个我无法解决的复杂NSPredicate
问题。
我的数据结构如下:
类别 - 有很多标题
标题 - 有很多产品
标题 - 具有latestProduct属性(title.latestProduct
)
可以通过排除属性(title.excluded = YES
)排除标题
可以通过排除属性(product.excluded = YES
)
我正在寻找的结果:我需要获取系统中所有类别的列表,但是我想要排除以下类别:
(category.titles.excluded == YES)
OR
category.titles.latestProduct.excluded == YES
)OR(这对我来说很难)
category.titles.excluded == YES
)计数的总和和(category.titles.latestProduct.excluded == YES
)的计数等于类别标题的数量(category.titles.count
)我可以用简单的英语描述我的问题,但无法找到将其格式化为谓词的正确方法。非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
所以我最终使用ANY子句和子查询的组合来解决这个问题。谓词如下:
ANY productTitles.excluded == nil && SUBQUERY(productTitles, $x, SUBQUERY($x.products, $y, $y.excluded == nil).@count != 0 ).@count != 0
我认为子查询基本上是“ANY”子句的工作方式,但我无法弄清楚如何为子查询的子查询做一个ANY子句。