Можно ли использовать базовую запись данных в предикате внутри оболочки свойств @FetchRequest в SwiftUI?
У меня есть список Project и список задач. Я хочу нажать на проект и перейти к списку связанных задач для этого проекта. Я не могу найти способ передать в родительский проект так, чтобы SwiftUI мог видеть до инициализации @FetcheRequest.
Я попытался поместить родительский проект в EnvironmentObject,Это вызывается, когда я перехожу из ProjectListView в TaskListView.
TaskListView()
.environment(\.managedObjectContext, self.managedObjectContext)
.environmentObject(self.projectToEdit)
Затем в TaskListView, который я добавил, пробовал это:
@Environment(\.managedObjectContext) var managedObjectContext
@EnvironmentObject var parentProject: Project
@FetchRequest(
entity: Task.entity(),
sortDescriptors: [
NSSortDescriptor(keyPath: \Task.name, ascending: true)
],
predicate: NSPredicate(format: String(format: "%@%@", "taskProject", " == %@"), parentProject)
) var tasks: FetchedResults<Task>
Я получаю следующую ошибку в строке сПредикат.
Невозможно использовать элемент экземпляра parentProject в инициализаторе свойства;инициализаторы свойств запускаются до того, как станет доступным 'self'
Так есть ли способ написать предикат, который может использовать родительский проект? Передача проекта в представление задач не похоже на то, что он будет работать. Как еще мне использовать запись в предикате, подобном этому?