首页 文章

核心数据多对多谓词(再次)

提问于
浏览
1

昨天我asked a question关于多对多的关系:

我有两个通过多对多关系相关的实体:数据库<< ----- >>类别换句话说,数据库可以有许多类别,类别可以与许多数据库相关联 . 我需要一个NSPredicate,它将返回与给定Database对象关联的所有Category对象 .

......并收到一些非常有用的建议 . 我现在想问一个不同但相关的问题:

我想要一个NSPredicate,它将返回与给定Database对象无关的所有Category对象 .

我要求它作为谓词,因为它被用作获取结果控制器的一部分 .

任何帮助非常感谢 . 提前致谢!

2 回答

  • 2

    它似乎是一个核心数据错误,"NOT ANY"查询无法正常工作(请参阅Core Data NSPredicate with to-Many Relationship以了解类似问题) .

    作为解决方法,您可以将以下谓词与“SUBQUERY”一起使用:

    [NSPredicate predicateWithFormat:@"SUBQUERY(databases, $db, $db == %@).@count == 0", theDatabase]
    
  • 0

    尝试使用:

    [NSPredicate predicateWithFormat:@"NOT (ANY databases = %@)", database];
    

    要么

    [NSPredicate predicateWithFormat:@"NOT(%@ IN databases)", database]
    

相关问题