ОСНОВНЫЕ данные: выборка объектов в соответствии с их отношениями

#ios #swift #xcode #core-data

#iOS #swift #xcode #основные данные

Вопрос:

В настоящее время я экспериментирую с ОСНОВНЫМИ данными и пытаюсь запросить запрос основных данных в соответствии с их родительскими отношениями. У меня есть две сущности, у меня есть объект задачи (отношение: task.category) и категория (отношение: category.tasks).

В настоящее время у меня возникают проблемы с выборкой задач в соответствии с их отношениями родительской категории.

 struct CategoryCard 

    @Environment(.managedObjectContext)
    var context: NSManagedObjectContext
    
var predicate : String
var category : Category!       // 1. Category is Passed in

@FetchRequest(entity: Task.entity(), sortDescriptors: [NSSortDescriptor(key: "date", ascending: true)],
              predicate: NSPredicate(format: "task.parentCategory == %@", category.title!),
              animation: .spring()
)

var results : FetchRequest<Task>
  

В настоящее время я получаю сообщение об ошибке: невозможно использовать элемент экземпляра ‘category’ в инициализаторе свойств; инициализаторы свойств запускаются до того, как будет доступно ‘self’

Я также пытаюсь отобразить эти результаты с помощью цикла ForEach.

 ForEach(results, id: .self) { task in
                        Text("(task)")  
                    }
  

Кроме того, эта структура представления карты вызывается с использованием цикла ForEach из другого файла.

 ForEach(categoriesResults, id: .self) { category in
                        CategoryBoxView(category: category)
 }
  

Как мне подойти к решению этой проблемы?

Ответ №1:

Доступ к задачам из категории, которая передается, вам не нужен запрос на выборку или свойство для задач

 ForEach(self.category.tasks, id: .self) { task in
    Text("(task)")  
}