SwiftUI在FetchRequest中使用带有结构参数的谓词
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI在FetchRequest中使用带有结构参数的谓词相关的知识,希望对你有一定的参考价值。
如何将@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';属性初始化程序在“自我”可用之前运行
如果无法在初始化程序中使用@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
以上是关于SwiftUI在FetchRequest中使用带有结构参数的谓词的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - 如何在 init 中使用 fetchRequest 更新数据
带有 NSPredicate 的 FetchRequest 不会在新条目上更新
使用 CloudKit + CoreData,如何在没有 SwiftUI 的 @FetchRequest 的情况下从远程云更新中更新 UI?