这些天我在NSFetchRequest周围挣扎。 我的数据模型如下所示:
Post <->> Category
现在我需要一个获取请求来获取category.name属性不是“xxx”的所有帖子。 查看NSFetchRequest的文档应该是:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NONE category.name == %@", categoryName]
但这导致一个空列表(该请求由UFableView中的NSFetchedResultsController使用。
文档说:
NONE 不指定以下表达式中的元素。例如,NONE children.age&lt; 18.这在逻辑上等同于NOT(ANY ......)。
如果我将我的谓词反转为
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY category.name == %@", categoryName]
列表中包含我想要从该列表中排除的对象。
我在这里缺少什么?
提前致谢
答案 0 :(得分:2)
您拥有的谓词形式是正确的。
最简单的解释是你没有与“@”NONE category.name ==%@“谓词匹配的对象。这可以解释为什么反向有效。
我建议你:
Post
个对象,将返回的对象数与“ANY”谓词返回的对象数进行比较。如果他们是相同的那么...... category.name
值以查看它们中的任何一个是否与“NONE”谓词匹配。 我认为应该让你找到问题所在。