2016-02-10 7 views
1

У меня есть два объекта NSManagedObject, как описано ниже.Вывод CoreData, где все свойства отношения истинны

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 объекты, где все Projects завершены. Однако, когда я пытаюсь выполнить этот запрос на выборку, я получаю эту ошибку. Exception was caught during NSPersistentStoreCoordinator -performBlock: Unsupported predicate

Вот мой предикат

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

Как правильно извлечь все Day S, где каждый Project в наборе была завершена? Я мог бы получить, а затем filter, но я бы предпочел сделать все это на уровне CoreData.

+0

Я не exacly знать о модификации Свифта в синтаксисе NSPredicate в SUBQUERY, но она не должна быть 'YES' вместо' true' ? – bteapot

+0

Производит тот же результат. Это неверно. – aahrens

ответ

0

я был в состоянии выполнить это, делая в NSPredicate

let predicate = NSPredicate(format: "isHighPriority == %@ AND SUBQUERY(projects, $project, $project.complete == TRUE)[email protected] == [email protected]", NSNumber(bool: true)) 
Смежные вопросы