Swift CoreData获取,其中所有关系属性均为True

Swift CoreData获取,其中所有关系属性均为True,swift,core-data,nspredicate,nsfetchrequest,Swift,Core Data,Nspredicate,Nsfetchrequest,我有两个NSManagedObject,如下所述 extension Day { @NSManaged var date: NSDate? @NSManaged var isHighPriority: NSNumber? @NSManaged var projects: NSSet? } extension Project { @NSManaged var complete: Bool @NSManaged var title: String?

我有两个NSManagedObject,如下所述

extension Day {
    @NSManaged var date: NSDate?
    @NSManaged var isHighPriority: NSNumber?
    @NSManaged var projects: NSSet?
}

extension Project {
    @NSManaged var complete: Bool
    @NSManaged var title: String?
    @NSManaged var day: Day?
}
我要做的是获取所有
Day
对象,其中所有
项目都已完成。然而,当我尝试这个获取请求时,我得到了这个错误<代码>在NSPersistentStoreCoordinator-performBlock期间捕获异常:不支持的谓词

let predicate = NSPredicate(format: "isHighPriority == %@ AND SUBQUERY(projects, $project, $project.complete == TRUE).@count == projects.@count", NSNumber(bool: true))
这是我的谓词

let predicate = NSPredicate(format: "isHighPriority == %@ AND ALL projects.complete == TRUE", NSNumber(bool: true))

如果集合中的每个
项目
都已完成,如何正确获取所有
s?我可以先提取然后过滤,但我更愿意在CoreData级别执行所有操作。

我可以通过在
NSPredicate

let predicate = NSPredicate(format: "isHighPriority == %@ AND SUBQUERY(projects, $project, $project.complete == TRUE).@count == projects.@count", NSNumber(bool: true))

我可以通过在
NSPredicate

let predicate = NSPredicate(format: "isHighPriority == %@ AND SUBQUERY(projects, $project, $project.complete == TRUE).@count == projects.@count", NSNumber(bool: true))

我不太清楚Swift对NSPredicate语法的修改,但它不应该是
YES
而不是
TRUE
?产生相同的结果。它是无效的。我不知道Swift对NSPredicate语法的修改,但它不应该是
YES
而不是
TRUE
?产生相同的结果。这是无效的。