【发布时间】:2014-06-27 15:11:20
【问题描述】:
我有一个复杂的NSPredicate 问题,我无法解决。
我的数据结构如下:
类别 - 有很多标题
标题 - 有很多产品
Title - 具有 latestProduct 属性 (title.latestProduct)
可以通过排除属性排除标题 (title.excluded = YES)
可以通过排除属性排除产品 (product.excluded = YES)
我正在寻找的结果:我需要获取系统中所有类别的列表,但是我想排除以下类别:
- 排除所有类别标题
(category.titles.excluded == YES)
或
- 排除所有最新产品 (
category.titles.latestProduct.excluded == YES)
或者(这对我来说是最困难的部分)
- (
category.titles.excluded == YES) 的计数和 (category.titles.latestProduct.excluded == YES) 的计数之和等于类别标题的计数 (category.titles.count)
我可以用简单的英语描述我的问题,但无法找到将其格式化为谓词的正确方法。任何帮助将不胜感激!
【问题讨论】:
-
我会使用子查询(检查:stackoverflow.com/questions/9803971/…)
-
我建议你用块做一个谓词,因为在块内你可以轻松快速地创建这样复杂的查询。
-
不幸的是,块不能与核心数据获取查询一起使用。至于子查询 - 我一直在使用它们,但不幸的是我不知道如何为查询的最后部分添加 2 个计数
-
@Mamela,谁说它不起作用?我没有使用其他任何东西,而是使用基于块的 CoreData 谓词;但是,我一直本着 CoreData 的精神建立数据库,所以我从来没有遇到过问题。根据您的帖子,您可以在数据库的情况下做同样的事情。如果我对您的实体有更多了解,我会为您创建基于块的请求作为答案。
标签: ios objective-c nspredicate