SwiftUI использует предикат отношений со структурным параметром в FetchRequest - PullRequest
0 голосов
/ 10 ноября 2019

Как использовать @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>
    ...

У меня todoList настроен как One отношение TodoItem через TodoList.

Выдает ошибку:

Невозможно использовать элемент экземпляра 'todoList' в инициализаторе свойства;инициализаторы свойств запускаются до того, как станет доступным 'self'

Как мне сделать @FetchRequest с этим отношением, если я не могу использовать его в инициализаторе? Кроме того, я должен использовать todoList.objectID где-то здесь вместо этого?

1 Ответ

0 голосов
/ 10 ноября 2019

Разобрался:

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 и предикат @FetchRequest с переменной, которая может измениться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...