Swift CoreData获取,其中所有关系属性均为True
我有两个NSManagedObject,如下所述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?
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
?产生相同的结果。这是无效的。