如何将@FetchRequest与传递给struct的参数一起使用?

struct TodoItemView: View {
    var todoList: TodoList
    @FetchRequest(
        entity: TodoItem.entity(),
        sortDescriptors: [NSSortDescriptor(key: "order", ascending: true)],
        predicate: NSPredicate(format: "todoList == %@", todoList)
    ) var todoItems: FetchedResults<TodoItem>
    ...

我通过todoListOne设置为TodoItemTodoList关系。

它给了我错误:

无法在属性初始化程序中使用实例成员“todoList”;属性初始化程序在“自我”可用之前运行

如果无法在初始化程序中使用它,如何处理这种关系的@FetchRequest?另外,我应该在这里的某个地方使用todoList.objectID吗?

最佳答案

弄清楚了:

var todoList: TodoList
@FetchRequest var todoItems: FetchedResults<TodoItem>

init(todoList: TodoList) {
    self.todoList = todoList
    self._todoItems = FetchRequest(
        entity: TodoItem.entity(),
        sortDescriptors: [NSSortDescriptor(key: "order", ascending: true)],
        predicate: NSPredicate(format: "todoList == %@", todoList)
    )
}

感谢这里的类似答案:SwiftUI View and @FetchRequest predicate with variable that can change

09-27 05:26