FetchRequest для получения элементов из отношения "один ко многим"? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть две сущности: одна называется проектами, а другая - задачами, и у проектов может быть много задач. У меня есть запрос на выборку, который может извлекать все задачи, но я хочу изменить его так, чтобы он извлекал только задачи из наблюдаемого проекта.

Вот мои два класса с отношением один ко многим:

extension ProjectItem {

    @NSManaged public var projectId: UUID
    @NSManaged public var projectTitle: String
    @NSManaged public var projectDateCreated: Date
    @NSManaged public var task: NSSet

}
extension TaskItem {

    @NSManaged public var completedDate: Date
    @NSManaged public var createdDate: Date
    @NSManaged public var id: UUID
    @NSManaged public var isComplete: Bool
    @NSManaged public var title: String
    @NSManaged public var project: ProjectItem?
}

Вот основной c запрос на выборку, который у меня есть, и который извлекает все завершенные задачи. Как я могу изменить этот запрос на выборку, чтобы получить только те задачи, которые принадлежат наблюдаемому проекту?

    @FetchRequest(entity: TaskItem.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \TaskItem.createdDate, ascending: false)], predicate: NSPredicate(format: "isComplete == %@", NSNumber(value: false))) var taskItems: FetchedResults<TaskItem>

Спасибо!

1 Ответ

0 голосов
/ 14 июля 2020

Попробуйте следующее

// assuming
@ObservedObject var currentProject: ProjectItem

// ...

NSPredicate(format: "project.projectId == %@ AND isComplete == %@", 
            currentProject.projectId, NSNumber(value: false))
...