昨天我asked a question关于多对多关系:
我有两个与多对多关系相关的实体:
Database <<----->> Category
换句话说,数据库可以有许多类别,类别可以 与许多数据库相关联。
我需要一个NSPredicate,它将返回所有关联的Category对象 使用给定的数据库对象。
......并收到一些非常有用的建议。我现在想问一个不同但相关的问题:
我想要一个NSPredicate,它将返回与给定Database对象无关的所有Category对象。
我将此作为谓词,因为它被用作获取结果控制器的一部分。
任何帮助非常感谢。提前谢谢!
答案 0 :(得分:2)
似乎是一个核心数据错误,“没有任何”查询无法正常工作 (有关类似问题,请参阅Core Data NSPredicate with to-Many Relationship。)
作为一种变通方法,您可以将以下谓词与“SUBQUERY”一起使用:
[NSPredicate predicateWithFormat:@"SUBQUERY(databases, $db, $db == %@).@count == 0", theDatabase]
答案 1 :(得分:0)
尝试使用:
[NSPredicate predicateWithFormat:@"NOT (ANY databases = %@)", database];
或者
[NSPredicate predicateWithFormat:@"NOT(%@ IN databases)", database]